Kong es una capa API extensible de código abierto (también conocida como API gateway o middleware API). Kong funciona sobre cualquier API RESTful y se extiende con plugins, que ofrecen funciones y servicios adicionales más allá de la plataforma principal.
Kong fue creado originalmente en Mashape para proporcionar más de 15.000 APIs y microservicios para su API Marketplace y generar miles de millones de solicitudes al mes para más de 200.000 desarrolladores. Hoy en día, Kong se utiliza en despliegues críticos tanto para organizaciones pequeñas como grandes
La última versión es: 0.14.1
Página web oficial:El inicio de sesión del hipervínculo es visible.
GitHub:El inicio de sesión del hipervínculo es visible.
Dirección de introducción del plugin Kong:El inicio de sesión del hipervínculo es visible.
Dirección del documento relacionado con Kong:El inicio de sesión del hipervínculo es visible.
Kong síEdiciones Comunitaria y Enterprise, la diferencia entre ambos:El inicio de sesión del hipervínculo es visible.
Kong es compatible con PostgreSQL 9.5+ y Cassandra 3.xx como su almacén de datos.
Tengo instalado PostgreSQL y el tutorial es el siguiente:
Este artículo utiliza la edición comunitaria de Kong como ejemplo para instalar y desplegar
Paquete de descarga:
Instalación:
Consulta la versión
o
Crea un perfil:
Si tu configuración está enTodos los valores están comentados, Kong funcionará con la configuración predeterminada. Al iniciar, Kong busca varias ubicaciones predeterminadas que puedan contener el archivo de configuración:
/etc/kong/kong.conf
/etc/kong.conf El directorio de plantillas kong se encuentra en /usr/local/share/lua/5.1/kong/templates y contiene los siguientes tres archivos
kong_defaults.lua nginx.lua nginx_kong.lua Modifica el archivo de configuración /etc/kong/kong.conf, cancela los comentarios y modifícalo según tu situación real
Inicializar la base de datos
iniciar
Al inicializar la base de datos y iniciar Kong, puedes especificar el archivo de configuración con el parámetro [-c /path/to/kong.conf].
Después de que Kong inicia, uno es 8000, el otro 8001, y el puerto 80000 es el puerto de entrada de peticiones, y el usuario envía la solicitud primero al puerto 8000 del proyecto Kong, y el Kong la reenvía a la dirección real del servicio en segundo plano según las reglas configuradas. El puerto 8001 es el puerto de gestión, y una serie de configuraciones como ajustes de plugins, adiciones, eliminaciones de API, modificaciones y balanceo de carga se gestionan a través del puerto 8001.
IP de acceso al navegador: 8000, devuelve lo siguiente:
{"message":"no se ha encontrado ruta ni API con esos valores"}
Interfaz de gestión de administración Kong (Si la red externa es inaccesible, puedes modificar la configuración de enlace para permitir el acceso público a la red)
{"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}},"eslogan":"bienvenidos a kong","configuration":{"plugins":["bundled"],"admin_ssl_enabled":true,"lua_ssl_verify_depth":1,"trusted_ips":{},"prefijo":"\/usr\/local\/kong","loaded_plugins":{" Transformer-respuesta":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," Transformador-Solicitud":True,"Correlation-ID":True,"limitación-tasa":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,"encabezados":["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": false,"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":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":" moderno","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_ directivas":[{"valor":"prometheus_metrics 5m","nombre":"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":{"pendiente":5,"running":0},"nombre de host":"VM_0_9_centos"}
Parámetros globales
Es decir, todos los comandos pueden añadirse con los siguientes parámetros
--ayuda ayuda al comando
--v Activar el modo de detalle
--vv para activar el modo de depuración
Línea de comandos
Kong Check
Comprobar la validez de kong.conf
Uso: kong check [conf] [conversación] (Comprobación por defecto /etc/kong.conf o /etc/kong/kong.conf)
Kong Prepara
Prepara las precarpetas, subcarpetas y archivos de Kong--- Para ser sincero, no sé para qué sirve este comando, de todas formas no lo he usado
Kong Health
Comprobar la salud del nodo Kong
Migraciones Kong
Gestionar la base de datos Kong
Artículos de referencia:
Documento de configuración Kong:https://docs.konghq.com/0.14.x/configuration/ Comando Kong CLI:https://docs.konghq.com/0.14.x/cli/
|