Kong is een uitbreidbare open-source API-laag (ook bekend als API-gateway of API-middleware). Kong draait bovenop elke RESTful API en breidt uit met plugins; ze bieden extra functies en diensten buiten het kernplatform.
Kong werd oorspronkelijk gebouwd bij Mashape om meer dan 15.000 API's en microservices te leveren voor zijn API Marketplace en miljarden verzoeken per maand te genereren voor meer dan 200.000 ontwikkelaars. Tegenwoordig wordt Kong gebruikt in missie-kritische implementaties voor zowel kleine als grote organisaties
De nieuwste versie is: 0.14.1
Officiële website:De hyperlink-login is zichtbaar.
GitHub:De hyperlink-login is zichtbaar.
Kong plugin introductieadres:De hyperlink-login is zichtbaar.
Adres van Kong-gerelateerd document:De hyperlink-login is zichtbaar.
Kong heeftEdities van gemeenschap en ondernemingen, het verschil tussen de twee:De hyperlink-login is zichtbaar.
Kong ondersteunt PostgreSQL 9.5+ en Cassandra 3.xx als zijn datastore.
Ik heb PostgreSQL geïnstalleerd en de tutorial is als volgt:
Dit artikel gebruikt de Kong Community Edition als voorbeeld om te installeren en uit te rollen
Downloadpakket:
Installatie:
Controleer de versie
of
Maak een profiel aan:
Als je configuratie in staatAlle waarden worden weggecommenteerd, Kong draait met de standaardinstellingen. Bij het opstarten zoekt Kong naar verschillende standaardlocaties die het configuratiebestand kunnen bevatten:
/etc/kong/kong.conf
/etc/kong.conf De kong-sjabloonmap bevindt zich onder /usr/local/share/lua/5.1/kong/templates en bevat de volgende drie bestanden
kong_defaults.lua nginx.lua nginx_kong.lua Pas het configuratiebestand /etc/kong/kong.conf aan, annuleer de opmerkingen en pas het aan volgens je werkelijke situatie
Initialiseer de database
ingewijde
Bij het initialiseren van de database en het starten van Kong kun je het configuratiebestand specificeren met de parameter [-c /path/to/kong.conf].
Nadat Kong is gestart, is de ene 8000, de andere 8001, en de 80000-poort is de request entry-poort, en stuurt de gebruiker het verzoek eerst naar de 8000-poort van het Kong-project, waarna de Kong het doorstuurt naar het echte achtergrondserviceadres volgens de geconfigureerde regels. De 8001-poort is de beheerpoort, en een reeks configuraties zoals plug-in-instellingen, API-toevoegingen, verwijderingen, aanpassingen en load balancing worden beheerd via de 8001-poort.
Browsertoegang IP: 8000, geeft het volgende terug:
{"message":"geen route en geen API gevonden met die waarden"}
Kong Admin Beheerinterface (Als het externe netwerk ontoegankelijk is, kun je de bindingsconfiguratie aanpassen om publieke netwerktoegang mogelijk te maken)
{"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-functies":waar,"UDP-log":waar,"respons-ratelimiting":waar,"AWS-lambda":waar,"Statsd":waar,"Prometheus":waar,"Request-Termination":waar}},"Tagline":"Welkom bij kong","configuration":{"plugins":["bundled"],"admin_ssl_enabled":true,"lua_ssl_verify_depth":1,"trusted_ips":{},"prefix":"\/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":waar,"zipkin":waar,"post-functie":waar,"bot-detectie":waar,"acl":waar,"loggly":waar,"syslog":waar,"Azure-functies":waar,"UDP-log":waar,"Bestandslog":waar," request-transformer":waar,"correlation-id":waar,"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":Waar,"IP":"0.0.0","proxy_protocol":False,"Port":8443,"http2":False,"Listener":"0.0.0:8443 SSL"}],"proxy_ssl_enabled":Waar," pg_password":"******","cassandra_ssl":vals,"enabled_headers":{"latency_tokens":waar,"X-Kong-Proxy-Latency":waar,"Via":waar,"server_tokens":waar,"Server":waar," X-Kong-Upstream-Latency":waar,"X-Kong-Upstream-Status":vals},"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":false,"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_ richtlijnen":[{"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"]},"versie":"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 parameters
Dat wil zeggen, alle commando's kunnen worden toegevoegd met de volgende parameters
--help help command
--v Zet detailmodus aan
--vv om debugmodus aan te zetten
Commandoregel
Kong Check
Controleer de geldigheid van kong.conf
Gebruik: kong check [conf] [conf] (Standaard check /etc/kong.conf of /etc/kong/kong.conf)
Kong, bereid je voor
Bereid de pre-mappen en submappen en bestanden van Kong voor--- Om eerlijk te zijn weet ik niet waar dit commando voor is, ik heb het toch niet gebruikt
Kong Health
Controleer de gezondheid van de Kong-knoop
Kongmigraties
Beheer de Kong-database
Referentieartikelen:
Kong-configuratiedocument:https://docs.konghq.com/0.14.x/configuration/ Kong CLI Commando:https://docs.konghq.com/0.14.x/cli/
|