Kong ist eine erweiterbare Open-Source-API-Schicht (auch bekannt als API-Gateway oder API-Middleware). Kong läuft auf jeder RESTful-API und erweitert sich mit Plugins; sie bieten zusätzliche Funktionen und Dienste über die Kernplattform hinaus.
Kong wurde ursprünglich bei Mashape entwickelt, um über 15.000 APIs und Microservices für seinen API-Marktplatz bereitzustellen und Milliarden von Anfragen pro Monat für mehr als 200.000 Entwickler zu generieren. Heute wird Kong in missionskritischen Einsätzen sowohl für kleine als auch für große Organisationen eingesetzt
Die neueste Version lautet: 0.14.1
Offizielle Website:Der Hyperlink-Login ist sichtbar.
GitHub:Der Hyperlink-Login ist sichtbar.
Kong-Plugin-Einführungsadresse:Der Hyperlink-Login ist sichtbar.
Adresse des Kong-bezogenen Dokuments:Der Hyperlink-Login ist sichtbar.
Kong hatCommunity- und Enterprise-Ausgaben, der Unterschied zwischen beiden:Der Hyperlink-Login ist sichtbar.
Kong unterstützt PostgreSQL 9.5+ und Cassandra 3.xx als Datenspeicher.
Ich habe PostgreSQL installiert, und das Tutorial ist wie folgt:
Dieser Artikel verwendet die Kong Community Edition als Beispiel zur Installation und Bereitstellung
Download-Paket:
Installation:
Überprüfen Sie die Version
oder
Erstellen Sie ein Profil:
Wenn deine Konfiguration in istAlle Werte werden kommentiert, wird Kong mit den Standardeinstellungen laufen. Beim Start sucht Kong nach mehreren Standardstandorten, die die Konfigurationsdatei enthalten könnten:
/etc/kong/kong.conf
/etc/kong.conf Das kong-Vorlagenverzeichnis befindet sich unter /usr/local/share/lua/5.1/kong/templates und enthält die folgenden drei Dateien
kong_defaults.lua nginx.lua nginx_kong.lua Ändere die /etc/kong/kong.conf-Konfigurationsdatei, lösche die Kommentare und passe sie je nach aktueller Situation an
Datenbank initialisieren
einführen
Beim Initialisieren der Datenbank und beim Start von Kong können Sie die Konfigurationsdatei mit dem Parameter [-c /path/to/kong.conf] angeben.
Nachdem Kong gestartet ist, ist einer 8000, der andere 8001, und der 80000-Port ist der Request-Entry-Port, und der Benutzer sendet die Anfrage zuerst an den 8000-Port des Kong-Projekts, der Kong leitet sie gemäß den konfigurierten Regeln an die reale Hintergrund-Serviceadresse weiter. Der 8001-Port ist der Management-Port, und eine Reihe von Konfigurationen wie Plug-in-Einstellungen, API-Ergänzungen, Löschungen, Modifikationen und Lastverteilung werden über den 8001-Port verwaltet.
Browserzugriffs-IP: 8000, gibt Folgendes zurück:
{"message":"keine Route und keine API mit diesen Werten gefunden"}
Kong Admin-Verwaltungsoberfläche (Wenn das externe Netzwerk nicht zugänglich ist, kannst du die Bindungskonfiguration so anpassen, dass öffentlicher Netzwerkzugriff möglich ist)
{"plugins":{"enabled_in_cluster":[],"available_on_server":{"response-transformer":true,"oauth2":true,"acl":true,"correlation-id":true,"pre-function":true,"jwt":true," cors":true,"ip-restriction":true,"basic-auth":true,"key-auth":true,"rate-limiting":true,"request-transformer":true,"http-log":true,"file-log":true,"hmac-auth":true," ldap-auth":true,"datadog":true,"tcp-log":true,"zipkin":true,"post-function":true,"request-size-limiting":true,"bot-detection":true,"syslog":true,"loggly":true," azure-functions":true,"udp-log":true,"response-ratelimiting":true,"aws-lambda":true,"statsd":true,"prometheus":true,"request-termination":true}},"tagline":"Willkommen bei kong","configuration":{"plugins":["bundled"],"admin_ssl_enabled":true,"lua_ssl_verify_depth":1,"trusted_ips":{},"Präfix":"\/USR\/local\/kong","loaded_plugins":{" response-transformer":true,"request-termination":true,"prometheus":true,"ip-restriction":true,"pre-function":true,"jwt":true,"cors":true,"statsd":true,"basic-auth": true,"key-auth":true,"ldap-auth":true,"aws-lambda":true,"http-log":true,"response-ratelimiting":true,"hmac-auth":true,"request-size-limiting":true,"datadog":true," tcp-log":true,"zipkin":true,"post-function":true,"bot-detection":true,"acl":true,"loggly":true,"syslog":true,"azure-functions":true,"udp-log":true,"file-log":true":true," request-transformer":true,"correlation-id":true,"rate-limiting":true,"oauth2":true},"cassandra_username":"kong","admin_ssl_cert_csr_default":"\/usr\/local\/kong\/SSL\/ admin-kong-default.csr","ssl_cert_key":"\/USR\/local\/kong\/SSL\/kong-default.key","admin_ssl_cert_key":"\/usr\/local\/kong\/SSL\/admin-kong-default.key","dns_ Resolver":{},"pg_user":"Kong","mem_cache_size":"128m","cassandra_data_centers":["dc1:2","dc2:3"],"nginx_admin_directives":{},"custom_plugins":{},"pg_host":"127.0.0.1" ,"nginx_acc_logs":"\/usr\/local\/kong\/logs\/access.log","proxy_listen":["0.0.0.0:8000","0.0.0:8443 ssl"],"client_ssl_cert_default":"\/usr\/local\/kong\/ssl\/ kong-default.crt","ssl_cert_key_default":"\/usr\/local\/kong\/ssl\/kong-default.key","dns_no_sync":false,"db_update_propagation":0,"nginx_err_logs":"\/usr\/local\/ kong\/logs\/error.log","cassandra_port":9042,"dns_order":["LAST","SRV","A","CNAME"],"dns_error_ttl":1,"HEADERS":["server_tokens","latency_tokens"],"dns_stale_ttl":4," nginx_optimizations":true,"database":"postgres","pg_database":"kong","nginx_worker_processes":"auto","lua_package_cpath":"","admin_acc_logs":"\/usr\/local\/kong\/logs\/ admin_access.log","lua_package_path":".\/?. lua;.\/?\/init.lua; ","nginx_pid":"\/usr\/local\/kong\/pids\/nginx.pid","upstream_keepalive":60,"cassandra_contact_points":["127.0.0.1"],"admin_access_log":"logs\/admin_access.log"," client_ssl_cert_csr_default":"\/usr\/local\/kong\/ssl\/kong-default.csr","proxy_listeners":[{"ssl":false,"ip":"0.0.0","proxy_protocol":false,"port":8000,"http2": false,"listener":"0.0.0:8000"},{"ssl":true,"ip":"0.0.0","proxy_protocol":false,"port":8443,"http2":false,"listener":"0.0.0:8443 ssl"}],"proxy_ssl_enabled":true," pg_password":"******","cassandra_ssl":falsch,"enabled_headers":{"latency_tokens":true,"X-Kong-Proxy-Latency":true,"Via":true,"server_tokens":true,"Server":true," X-Kong-Upstream-Latency":true,"X-Kong-Upstream-Status":false},"ssl_cert_csr_default":"\/usr\/local\/kong\/ssl\/kong-default.csr","client_ssl":false,"db_resurrect_ttl" :30,"error_default_type":"text\/plain","cassandra_consistency":"EINS","client_max_body_size":"0","admin_error_log":"logs\/error.log","pg_ssl_verify":falsch,"dns_not_ found_ttl":30,"pg_ssl":falsch,"db_update_frequency":5,"ssl_ciphers":"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256","cassandra_repl_strategy":"SimpleStrategy","cassandra_repl_factor":1,"log_level":"notice","admin_ssl_cert":\/usr\/local\/kong\/ssl\/ admin-kong-default.crt","real_ip_header":"X-Real-IP","kong_env":"\/usr\/local\/kong\/.kong_env","cassandra_schema_consensus_timeout":10000,"dns_hostsfile":"\/etc\/ hosts","admin_listeners":[{"ssl":false,"ip":"127.0.0.1","proxy_protocol":false,"port":8001,"http2":false,"listener":"127.0.0.1:8001"},{"ssl":true,"ip":"127.0.0.1"," proxy_protocol":false,"port":8444,"http2":false,"listener":"127.0.0.1:8444 ssl"}],"cassandra_timeout":5000,"ssl_cert":"\/usr\/local\/kong\/ssl\/kong-default.crt"," proxy_access_log":"logs\/access.log","admin_ssl_cert_key_default":"\/usr\/local\/kong\/ssl\/admin-kong-default.key","cassandra_ssl_verify":false,"ssl_cipher_suite":" modern","cassandra_lb_policy":"RoundRobin","real_ip_recursive":"off","proxy_error_log":"logs\/error.log","client_ssl_cert_key_default":"\/usr\/local\/kong\/ssl\/ kong-default.key","nginx_daemon":"On","anonymous_reports":True,"db_cache_ttl":0,"nginx_proxy_directives":{},"pg_port":5432,"nginx_kong_conf":"\/USR\/local\/kong\/ nginx-kong.conf","client_body_buffer_size":"8k","lua_socket_pool_size":30,"admin_ssl_cert_default":"\/usr\/local\/kong\/SSL\/admin-kong-default.crt","nginx_http_ Direktiven":[{"Value":"prometheus_metrics 5M","Name":"lua_shared_dict"}],"cassandra_keyspace":"Kong","ssl_cert_default":"\/USR\/local\/Kong\/SSL\/Kong-default.crt"," nginx_conf":"\/usr\/local\/kong\/nginx.conf","admin_listen":["127.0.0.1:8001","127.0.0.1:8444 SSL"]},"Version":"0.14.1","node_id":"238868666-845c-450b-9e9d-4b74b5267eb9 ","lua_version":"LuaJIT 2.1.0-beta3","prng_seeds":{"pid: 30380":521312001726},"timers":{"pending":5,"running":0},"hostname":"VM_0_9_centos"}
Globale Parameter
Das heißt, alle Befehle können mit folgenden Parametern hinzugefügt werden
--Hilfehilfe, Kommando,
--v Aktiviere den Detailmodus
--vv, um den Debug-Modus zu aktivieren
Kommandozeile
Kong-Check
Überprüfe die Gültigkeit von kong.conf
Einsatz: Kong Check [conf] [conf] (Standard-Check /etc/kong.conf oder /etc/kong/kong.conf)
Kong, bereite dich vor.
Bereite Kongs Pre-Ordner, Unterordner und Dateien vor--- Ehrlich gesagt weiß ich nicht, wofür dieser Befehl ist, ich habe ihn sowieso nicht benutzt
Kong Gesundheit
Überprüfe die Gesundheit des Kong-Knotens
Kong-Migrationen
Verwaltung der Kong-Datenbank
Nachschlageartikel:
Kong-Konfigurationsdokument:https://docs.konghq.com/0.14.x/configuration/ Kong CLI-Befehl:https://docs.konghq.com/0.14.x/cli/
|