Kong은 확장 가능한 오픈 소스 API 계층(API 게이트웨이 또는 API 미들웨어라고도 함)입니다. Kong은 어떤 RESTful API 위에서도 실행되며 플러그인으로 확장되어 핵심 플랫폼을 넘어선 추가 기능과 서비스를 제공합니다.
Kong은 원래 Mashape에서 API 마켓플레이스에 15,000개 이상의 API와 마이크로서비스를 제공하며, 20만 명 이상의 개발자를 위해 매달 수십억 건의 요청을 생성하기 위해 개발되었습니다. 오늘날 콩은 소규모 및 대규모 조직 모두에서 미션 크리티컬 배치에 사용되고 있습니다
최신 버전은 0.14.1입니다
공식 웹사이트:하이퍼링크 로그인이 보입니다.
GitHub:하이퍼링크 로그인이 보입니다.
콩 플러그인 소개 주소:하이퍼링크 로그인이 보입니다.
콩 관련 문서 주소:하이퍼링크 로그인이 보입니다.
콩은커뮤니티 및 엔터프라이즈 판, 두 것의 차이:하이퍼링크 로그인이 보입니다.
Kong은 PostgreSQL 9.5+와 Cassandra 3.xx를 데이터 저장소로 지원합니다.
저는 PostgreSQL을 설치해 두었고, 튜토리얼은 다음과 같습니다:
이 글에서는 Kong 커뮤니티 에디션을 예시로 사용하여 설치 및 배포를 진행합니다
다운로드 패키지:
설치:
버전 확인해
또는
프로필 만들기:
만약 당신의 구성이모든 값은 주석으로 삭제됩니다콩은 기본 설정으로 실행됩니다. 시작 시 Kong은 구성 파일이 있을 수 있는 여러 기본 위치를 찾습니다:
/etc/kong/kong.conf
/etc/kong.conf 콩 템플릿 디렉터리는 /usr/local/share/lua/5.1/kong/templates 아래에 위치하며, 다음 세 개의 파일을 포함하고 있습니다
kong_defaults.lua nginx.lua nginx_kong.lua /etc/kong/kong.conf 설정 파일을 수정하고, 댓글을 취소한 뒤 실제 상황에 맞게 수정하세요
데이터베이스 초기화
시작하다
데이터베이스를 초기화하고 Kong을 시작할 때, 설정 파일에 [-c /path/to/kong.conf] 매개변수를 지정할 수 있습니다.
Kong이 시작되면 하나는 8000, 다른 하나는 8001이며, 80000 포트는 요청 진입 포트입니다. 사용자는 먼저 Kong 프로젝트의 8000 포트로 요청을 보내고, Kong은 설정된 규칙에 따라 실제 백그라운드 서비스 주소로 전달합니다. 8001 포트는 관리 포트이며, 플러그인 설정, API 추가, 삭제, 수정, 부하 분산 등 다양한 구성이 8001 포트를 통해 관리됩니다.
브라우저 접근 IP: 8000, 반환 결과는 다음과 같습니다:
{"message":"해당 값으로 경로와 API가 없음"}
Kong의 관리자 관리 인터페이스 (외부 네트워크가 접근 불가능하면, 바인딩 설정을 수정하여 공용 네트워크 접근을 허용할 수 있습니다)
{"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":"Welcome to 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":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,"헤더":["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":".\/?. 루아;.\/?\/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","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-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":"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":"라운드로빈","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":{"pending":5,"running":0},"hostname":"VM_0_9_centos"}
전역 매개변수
즉, 모든 명령어는 다음 매개변수로 추가할 수 있습니다
--도와줘 지휘
--v 세부 모드 켜세요
--vv 디버그 모드를 켜기 위해
명령줄
콩 체크
kong.conf의 유효성을 확인해 보세요
사용: 콩 체크 [conf] [conf] (기본 체크: /etc/kong.conf 또는 /etc/kong/kong.conf)
콩 준비
콩의 프리폴더와 하위 폴더, 파일을 준비하세요--- 솔직히 이 명령어가 뭘 위한 건지 모르겠어요, 어차피 써본 적도 없거든요
콩 헬스
콩 노드의 상태를 점검하세요
콩 이동
콩 데이터베이스 관리
참고 논문:
콩 구성 문서:https://docs.konghq.com/0.14.x/configuration/ 콩 CLI 명령:https://docs.konghq.com/0.14.x/cli/
|