Kong är ett utbyggbart öppen källkods-API-lager (även känt som API-gateway eller API-middleware). Kong körs ovanpå vilket RESTful API som helst och utökar med plugins, de erbjuder ytterligare funktioner och tjänster utöver kärnplattformen.
Kong byggdes ursprungligen på Mashape för att tillhandahålla över 15 000 API:er och mikrotjänster till dess API-marknadsplats och generera miljarder förfrågningar per månad för mer än 200 000 utvecklare. Idag används Kong i uppdragskritiska insatser för både små och stora organisationer
Den senaste versionen är: 0.14.1
Officiell webbplats:Inloggningen med hyperlänken är synlig.
GitHub:Inloggningen med hyperlänken är synlig.
Kong-pluginets introduktionsadress:Inloggningen med hyperlänken är synlig.
Kong-relaterat dokumentadress:Inloggningen med hyperlänken är synlig.
Kong harCommunity and Enterprise-utgåvor, skillnaden mellan de två:Inloggningen med hyperlänken är synlig.
Kong stöder PostgreSQL 9.5+ och Cassandra 3.xx som sitt datalagringssystem.
Jag har PostgreSQL installerat, och handledningen är som följer:
Den här artikeln använder Kong Community Edition som exempel för att installera och distribuera
Nedladdningspaket:
Installation:
Kolla versionen
eller
Skapa en profil:
Om din konfiguration är iAlla värden kommenteras bort, Kong kommer att köras med standardinställningarna. Vid uppstart letar Kong efter flera standardplatser som kan innehålla konfigurationsfilen:
/etc/kong/kong.conf
/etc/kong.conf Kong-mallkatalogen finns under /usr/local/share/lua/5.1/kong/templates och innehåller följande tre filer
kong_defaults.lua nginx.lua nginx_kong.lua Modifiera konfigurationsfilen /etc/kong/kong.conf, avbryt kommentarerna och ändra den efter din faktiska situation
Initiera databasen
inleda
När du initierar databasen och startar Kong kan du ange konfigurationsfilen med parametern [-c /path/to/kong.conf].
Efter att Kong startat är en 8000, den andra 8001, och 80000-porten är request entry-porten, och användaren skickar förfrågan till 8000-porten i Kong-projektet först, och Kong vidarebefordrar den till den verkliga bakgrundsserviceadressen enligt de konfigurerade reglerna. 8001-porten är hanteringsporten, och en serie konfigurationer såsom plug-in-inställningar, API-tillägg, raderingar, modifieringar och lastbalansering hanteras via 8001-porten.
Webbläsaråtkomst-IP: 8000, returnerar följande:
{"message":"ingen rutt och inget API hittat med dessa värden"}
Kong administrationsgränssnitt (Om det externa nätverket är otillgängligt kan du ändra bindningskonfigurationen för att tillåta tillgång till offentligt nätverk)
{"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-logg":True,"Response-Ratelimiting":True,"AWS-Lambda":True,"Statsd":True,"Prometheus":True,"Request-Termination":True}},"Tagline":"Välkommen till kong","configuration":{"plugins":["bundled"],"admin_ssl_enabled":true,"lua_ssl_verify_depth":1,"trusted_ips":{},"prefix":"\/usr\/local\/kong","loaded_plugins":{" Responstransformer":sann,"begäran-terminering":sann,"Prometheus":sann,"IP-begränsning":sann,"pre-funktion":sant,"JWT":sann,"Cors":sant,"Statsd":sann,"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," 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: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":falsk,"enabled_headers":{"latency_tokens":sant,"X-Kong-Proxy-Latency":sant,"Via":sant,"server_tokens":sant,"Server":sant," 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":"ONE","client_max_body_size":"0","admin_error_log":"logs\/error.log","pg_ssl_verify":false,"dns_not_ found_ttl":30,"pg_ssl":falsk,"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":"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_ direktiv":[{"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"}
Globala parametrar
Det vill säga, alla kommandon kan läggas till med följande parametrar
--hjälp hjälp kommando
--v Slå på detaljläge
--vv för att slå på felsökningsläge
Kommandorad
Kong-check
Kontrollera giltigheten på kong.conf
Användning: kong check [conf] [conf] (Standardkontroll /etc/kong.conf eller /etc/kong/kong.conf)
Kong, förbered dig
Förbered Kongs förmappar och undermappar och filer--- Ärligt talat vet jag inte vad det här kommandot är till för, jag har ändå inte använt det
Kong Health
Kontrollera hälsan på kong-noden
Kongmigrationer
Hantera Kong-databasen
Referensartiklar:
Kong-konfigurationsdokument:https://docs.konghq.com/0.14.x/configuration/ Kong CLI-kommando:https://docs.konghq.com/0.14.x/cli/
|