Kong est une couche API open source extensible (également appelée passerelle API ou middleware API). Kong fonctionne au-dessus de toute API RESTful et s’étend avec des plugins, qui offrent des fonctionnalités et services supplémentaires au-delà de la plateforme principale.
Kong a été initialement développé chez Mashape pour fournir plus de 15 000 API et microservices à son API Marketplace et générer des milliards de requêtes par mois pour plus de 200 000 développeurs. Aujourd’hui, Kong est utilisé dans des déploiements critiques pour les petites et grandes organisations
La dernière version est : 0.14.1
Site officiel :La connexion hyperlientérée est visible.
GitHub :La connexion hyperlientérée est visible.
Adresse d’introduction du plugin Kong :La connexion hyperlientérée est visible.
Adresse du document lié au Kong :La connexion hyperlientérée est visible.
Kong aÉditions Communauté et Entreprise, la différence entre les deux :La connexion hyperlientérée est visible.
Kong prend en charge PostgreSQL 9.5+ et Cassandra 3.xx comme stockage de données.
J’ai PostgreSQL installé, et le tutoriel est le suivant :
Cet article utilise l’édition communautaire Kong comme exemple pour installer et déployer
Téléchargement du pack :
Installation :
Vérifie la version
ou
Créez un profil :
Si votre configuration est dansToutes les valeurs sont commentées, Kong fonctionnera avec les paramètres par défaut. Au démarrage, Kong recherche plusieurs emplacements par défaut pouvant contenir le fichier de configuration :
/etc/kong/kong.conf
/etc/kong.conf Le répertoire des modèles kong se trouve sous /usr/local/share/lua/5.1/kong/templates, et contient les trois fichiers suivants
kong_defaults.lua nginx.lua nginx_kong.lua Modifie le fichier de configuration /etc/kong/kong.conf, annule les commentaires et modifie-le selon ta situation réelle
Initialiser la base de données
initier
Lors de l’initialisation de la base de données et du lancement de kong, vous pouvez spécifier le fichier de configuration avec le paramètre [-c /path/to/kong.conf].
Après le lancement de Kong, l’un est 8000, l’autre 8001, et le port 80000 est le port d’entrée de requêtes, et l’utilisateur envoie d’abord la requête au port 8000 du projet Kong, puis le Kong la transmet à l’adresse réelle du service en arrière-plan selon les règles configurées. Le port 8001 est le port de gestion, et une série de configurations telles que les réglages des plug-in, les ajouts, suppressions, modifications et équilibrage de charge sont gérées via le port 8001.
IP d’accès du navigateur : 8000, renvoie ce qui suit :
{"message » :"aucune route et aucune API trouvée avec ces valeurs"}
Interface de gestion administrative Kong (Si le réseau externe est inaccessible, vous pouvez modifier la configuration de liaison pour permettre l’accès au réseau public)
{"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}},"slogan » :"bienvenue dans kong »,"configuration » :{"plugins » :["bundled"],"admin_ssl_enabled » :true,"lua_ssl_verify_depth » :1,"trusted_ips » :{},"prefix » :"\/usr\/local\/kong »,"loaded_plugins » :{ » Transformer-Réponse » :True,"Termination-Requête » :Vrai,"Prometheus » :Vrai,"Ip-Restriction » :Vrai,"Pré-Fonction » :Vrai,"JWT » :Vrai,"Cors » :Vrai,"Statsd » :Vrai,"Basic-AuthentH » : 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.0:8000 »,"0.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.0 »,"proxy_protocol » :false,"port » :8000,"http2 » : faux,"listener » :"0.0.0.0:8000"},{"ssl » :true,"ip » :"0.0.0.0 »,"proxy_protocol » :false,"port » :8443,"http2 » :false,"listener » :"0.0.0.0:8443 ssl"}],"proxy_ssl_enabled » :true, » pg_password » :"****** »,"cassandra_ssl » :false,"enabled_headers » :{"latency_tokens » :true,"X-Kong-Prox-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 » :"ONE », « client_max_body_size » :"0 »,"admin_error_log » :"logs\/error.log »,"pg_ssl_verify » :faux,"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 » : » moderne »,"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_ directives » :[{"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 » :"23886866-845c-450b-9e9d-4b74b5267eb9 « ,"lua_version » :"LuaJIT 2.1.0-beta3 »,"prng_seeds » :{"pid : 30380 » :521312001726},"timers » :{"en attente » :5,"running » :0},"nomhôte » :"VM_0_9_centos"}
Paramètres globaux
C’est-à-dire que toutes les commandes peuvent être additionnées avec les paramètres suivants
--aide, aide, commandement
--v Active le mode détail
--vv pour activer le mode débogage
Ligne de commande
Chèque Kong
Vérifiez la validité de kong.conf
Utilisation : kong check [conf] [conf] (Vérification par défaut /etc/kong.conf ou /etc/kong/kong.conf)
Kong prépare
Préparez les pré-dossiers, sous-dossiers et fichiers de Kong--- Pour être honnête, je ne sais pas à quoi sert cette commande, je ne l’ai pas utilisée de toute façon
Kong Santé
Vérifiez l’état de santé du nœud Kong
Migrations Kong
Gérer la base de données Kong
Articles de référence :
Document de configuration Kong :https://docs.konghq.com/0.14.x/configuration/ Commandement Kong CLI :https://docs.konghq.com/0.14.x/cli/
|