kong 配置詳解


配置屬性詳解

可以新建配置文件/etc/kong/kong.conf進行添加修改。

常規屬性

prefix

工作目錄。相當於Nginx的前綴路徑,包含臨時文件和日志。每個流程必須有一個單獨的工作目錄。

默認:/usr/local/kong

 


 

log_level

Nginx服務器的日志級別。可以在<prefix>/logs/error.log
請參閱 http://nginx.org/en/docs/ngx_core_module.html#error_log,以獲得公認的值列表。

默認:notice

 


 

proxy_access_log

代理端口請求訪問日志的路徑。設置為off以禁用日志代理請求。如果這個值是相對路徑,那么它將被放置於前綴路徑之下。

默認:logs/access.log

 


 

proxy_error_log

代理端口請求錯誤日志的路徑。這些日志的粒度由log_level指令進行調整。

默認:logs/error.log

 


 

admin_access_log

Admin API的路徑請求訪問日志。設置為off以禁用Admin API請求日志。如果這個值是相對路徑,那么它將被放置於前綴路徑之下。

默認:logs/admin_access.log

 


 

admin_error_log

Admin API請求錯誤日志的路徑。這些日志的粒度由log_level指令進行調整。

默認:logs/error.log

 


 

custom_plugins

這個節點應該加載的附加插件的逗號分隔列表。使用這個屬性來加載與Kong不捆綁的定制插件。插件將從kong.plugins.{name}.*命名空間加載。

默認:none
示例:my-plugin,hello-world,custom-rate-limiting

 


 

anonymous_reports

發送匿名的使用數據,比如錯誤堆棧跟蹤,以幫助改進Kong。

默認:on

 


 

Nginx屬性

proxy_listen

代理服務偵聽的地址和端口的逗號分隔的列表。代理服務是Kong的公共入口點,它代理從您的使用者到您的后端服務的流量。這個值接受IPv4、IPv6和主機名。

可以為每一對指定一些后綴:

  • ssl 將要求通過啟用TLS的特定地址/端口進行所有連接。
  • http2 允許客戶端打開http/2連接到Kong的代理服務
  • 最后, proxy_protocol 將為給定的地址/端口啟用代理協議。

這個節點的代理端口,啟用了“控制面板”模式(沒有流量代理功能),可以配置連接到同一數據庫的節點集群。

查看 http://nginx.org/en/docs/http/ngx_http_core_module.html#listen 用於描述這個和其他*_listen值的接受格式。

默認:0.0.0.0:8000, 0.0.0.0:8443 ssl
示例:0.0.0.0:80, 0.0.0.0:81 http2, 0.0.0.0:443 ssl, 0.0.0.0:444 http2 ssl


 

admin_listen

管理接口監聽的地址和端口的逗號分隔的列表。Admin接口是允許您配置和管理Kong的API。對該接口的訪問應該僅限於Kong管理員。這個值接受IPv4、IPv6和主機名。可以為每一對指定一些后綴:

  • ssl 將要求通過啟用TLS的特定地址/端口進行所有連接。
  • http2 允許客戶端打開http/2連接到Kong的代理服務
  • 最后, proxy_protocol 將為給定的地址/端口啟用代理協議。

這個值可以被設置為off,從而禁用這個節點的Admin接口,從而使“數據面板”模式(沒有配置功能)從數據庫中拉出它的配置更改。

默認:127.0.0.1:8001, 127.0.0.1:8444 ssl
示例:127.0.0.1:8444 http2 ssl

 


 

nginx_user

定義工作進程使用的用戶和組憑據。如果省略組,則使用名稱與用戶名相同的組。

默認:nobody nobody
示例:nginx www

 


 

nginx_worker_processes

確定Nginx生成的工作進程的數量。請參閱http://nginx.org/en/docs/ngx_core_module.html#worker 流程,以便詳細使用該指令和對已接受值的描述。

默認值:auto

 


 

nginx_daemon

確定Nginx是否會作為守護進程或前台進程運行。主要用於開發或在Docker環境中運行Kong。

查閱 http://nginx.org/en/docs/ngx_core_module.html#daemon.

默認:on

 


 

mem_cache_size

數據庫實體內存緩存的大小。被接受的單位是k和m,最低推薦值為幾個MBs。

默認:128m

 


 

ssl_cipher_suite

定義Nginx提供的TLS密碼。可接受的值modern, intermediate, old, or custom。請參閱 https://wiki.mozilla.org/Security/Server_Side_TLS
,了解每個密碼套件的詳細描述。

默認值:modern

 


 

ssl_ciphers

定義一個由Nginx提供的LTS ciphers的自定義列表。這個列表必須符合openssl ciphers定義的模式。如果ssl_cipher_suite不是custom,那么這個值就會被忽略。

默認值:none

 


 

ssl_cert

啟用SSL時,proxy_listen的SSL證書的絕對路徑。

默認值:none

 


 

ssl_cert_key

啟用SSL時,proxy_listen的SSL key的絕對路徑。

默認值:none

 


 

client_ssl

當代理請求時,確定Nginx是否應該發送客戶端SSL證書。

默認值:off

 


 

client_ssl_cert

如果啟用了client_ssl,用於proxy_ssl_certificate配置的客戶端SSL證書的絕對路徑。注意,這個值是靜態地在節點上定義的,並且當前不能在每個api的基礎上配置。

默認值:none

 


 

client_ssl_cert_key

如果啟用了client_ssl,用於proxy_ssl_certificate_key配置的客戶端SSL證書的絕對路徑。注意,這個值是靜態地在節點上定義的,並且當前不能在每個api的基礎上配置。

默認值:none

 


 

admin_ssl_cert

啟用了SSL后, admin_listen 的SSL證書的絕對路徑。

默認值:none

 


 

admin_ssl_cert_key

啟用了SSL后, admin_listen 的SSL key的絕對路徑。

默認值:none

 


 

upstream_keepalive

在每個工作進程,設置緩存中保存的upstream服務的空閑keepalive連接的最大數量。當超過這個數字時,會關閉最近最少使用的連接。

默認值:60

 


 

server_tokens

在錯誤頁面,和ServerVia(如果請求被代理)的響應頭字段,啟用或禁用展示Kong的版本。

默認值:on

 


 

latency_tokens

X-Kong-Proxy-LatencyX-Kong-Upstream-Latency響應頭字段中,啟用或禁用展示Kong的潛在信息。

默認值:on

 


 

trusted_ips

定義可信的IP地址塊,使其知道如何發送正確的 X-Forwarded-* 頭部信息。來自受信任的ip的請求使Kong轉發他們的 X-Forwarded-* headers upstream。不受信任的請求使Kong插入自己的 X-Forwarded-* headers。

該屬性還在Nginx配置中設置 set_real_ip_from 指令(s)。它接受相同類型的值(CIDR塊),但它是一個逗號分隔的列表。

如果相信 all /!\ IPs,請把這個值設為0.0.0.0/0,::/0

如果特殊值unix:被指定了,所有的unix域套接字都將被信任。

查閱 the Nginx docs 了解 更詳細的set_real_ip_from配置資料。

Default: none

 


 

real_ip_header

定義請求頭字段,它的值將被用來替換客戶端地址。在Nginx配置中使用相同名稱的指令 ngx_http_realip_module 設置該值。

如果這個值接收到 proxy_protocol,那么 proxy_protocol 參數將被附加到Nginx模板的 listen 指令中。

查閱 the Nginx docs 尋找更詳細的描述。

默認值: X-Real-IP

 


 

real_ip_recursive

該值設置了Nginx配置中同名的 ngx_http_realip_module 指令。

查閱 the Nginx docs 尋找更詳細的描述。

默認值: off

 


 

client_max_body_size

指定在 Content-Length 的請求頭中,定義Kong代理的請求的最大被允許的請求體大小。如果請求超過這個限度,Kong將返回413(請求實體太大)。將該值設置為0將禁用檢查請求體的大小。

提示: 查閱關於 the Nginx docs 這個參數的進一步描述。數值可以用km后綴,表示限制是千字節,還是兆字節。

默認值:0

 


 

client_body_buffer_size

定義讀取請求主體的緩沖區大小。如果客戶端請求體大於這個值,則閥體將被緩沖到磁盤。請注意,當閥體被緩沖到磁盤的時候,訪問或操縱請求主體可能無法工作,因此最好將這個值設置為盡可能高的值。(例如,將其設置為client_max_body_size,以迫使請求體保持在內存中)。請注意,高並發性環境需要大量的內存分配來處理許多並發的大型請求體。

提示: 查閱關於 the Nginx docs 這個參數的進一步描述。數值可以用km后綴,表示限制是千字節,還是兆字節。

默認值:8k

 


 

error_default_type

當請求Accept標頭丟失時,使用默認的MIME類型,且Nginx為這個請求返回一個錯誤。可接受的值包括 text/plain, text/html, application/json, 和application/xml.

默認值:text/plain

 


 

數據存儲屬性

Kong將存儲所有的數據(如api、消費者和插件)到Cassandra或PostgreSQL。

屬於同一集群的所有Kong節點都必須連接到同一個數據庫。

從Kong0.12.0開始:
PostgreSQL 9.4支持應該被認為是棄用。鼓勵用戶升級到9.5+
應該考慮支持Cassandra 2.1的支持。鼓勵用戶升級到2.2+

 


 

database

確定這個節點將使用哪個PostgreSQL或Cassandra作為它的數據存儲。可以設置為:postgrescassandra

默認值:postgres

 


 

Postgres settings

名稱 描述
pg_host Postgres服務器的主機
pg_port Postgres服務器的端口
pg_user Postgres用戶
pg_password Postgres用戶的密碼
pg_database 數據庫連接。必須存在
pg_ssl 啟用SSL連接到服務器
pg_ssl_verify 如果啟用了pg_ssl,則切換服務器證書驗證。看到lua_ssl_trusted_certificate設置。

 


 

Cassandra settings

名稱 描述
cassandra_contact_points 指向您的Cassandra集群的鏈接點列表,使用逗號分割。
cassandra_port 你的節點監聽的端口
cassandra_keyspace 在集群中使用的關鍵空間。如果不存在,就會被創建。
cassandra_consistency 在閱讀/寫作時使用一致性設置。
cassandra_timeout 讀取/寫入 超時(ms)時間。
cassandra_ssl 啟用SSL連接到節點。
cassandra_ssl_verify 如果啟用了cassandra_ssl,則切換服務器證書驗證。查看 lua_ssl_trusted_certificate 設置。
cassandra_username 使用PasswordAuthenticator時的用戶名。
cassandra_password 在使用PasswordAuthenticator時的密碼。
cassandra_consistency 在讀取/寫入Cassandra集群時使用一致性設置。
cassandra_lb_policy 當在您的Cassandra集群中分布查詢時使用負載平衡策略。可設置為 RoundRobinDCAwareRoundRobin 。如果您使用的是多數據中心集群,則后者更好。如果是這樣,還要設置 cassandra_local_datacenter
cassandra_local_datacenter 在使用DCAwareRoundRobin政策時,必須指定本地(最近)的集群名稱到這個Kong節點。
cassandra_repl_strategy 如果第一次創建密鑰空間,請指定復制策略。
cassandra_repl_factor SimpleStrategy指定一個復制因子。
cassandra_data_centers NetworkTopologyStrategy(網絡拓撲策略)指定數據中心。
cassandra_schema_consensus_timeout Cassandra節點之間同步scheme的超時( ms)時間。這個值只在數據遷移期間使用。

 


 

數據緩存屬性

為了避免與數據存儲不必要的通信,Kong可配置緩存實體(比如api、消費者、憑證等等)的間隔時間。如果緩存實體被更新,它也會處理也會失效。

本節介紹關於配置Kong此類配置實體緩存。

 


 

db_update_frequency

頻率(以秒為單位),用於檢查帶有數據存儲的更新實體。當節點通過Admin API創建、更新或刪除實體時,其他節點需要等待下一次輪詢(由這個值配置),以清除舊的緩存實體並開始使用新的緩存。

默認值:5 seconds

 


 

db_update_propagation

在數據存儲中為實體所花費的時間(以秒為單位)被傳播到另一個數據中心的副本節點。當在分布式環境中,比如多數據中心Cassandra集群時,這個值應該是Cassandra將一行傳播到其他數據中心的最大秒數。當設置了該值,該屬性將增加Kong傳播實體變更所花費的時間。單數據中心設置或PostgreSQL服務器不應該受到這樣的延遲,並且這個值可以安全地設置為0。

默認值: 0 seconds

 


 

db_cache_ttl

該節點數據存儲實體緩存的生存時間(以秒為單位)。數據庫遺漏(沒有實體)也會根據這個設置進行緩存。如果設置為0,那么這種緩存的實體/遺漏永遠不會過期。

默認值:3600 seconds(1小時)

 


 

DNS解析屬性

Kong將把主機名解析為 SRVA 記錄(按照該順序,CNAME 記錄將在此過程中被取消)。如果一個名稱被解析為SRV記錄,它會通過從DNS服務器接收到端口以覆蓋給定的端口號。

DNS選項SEARCHNDOTS(來自/etc/resolv.conf 文件)將被用於將短名稱擴展到完全限定的名稱。因此,它將首先嘗試完整 SEARCH SRV類型的列表,如果失敗,它將會嘗試SEARCH A記錄列表,等等。

ttl的持續時間內,內部DNS解析器將對DNS記錄的條目上做負載均衡請求。對於SRV記錄,可以設置權重,但是它只會使用記錄中最低優先級字段條目。

 


 

dns_resolver

設置域名服務器列表,使用逗號分隔。格式如: ip[:port] 。如果沒有制定域名服務器,name就使用本地 resolv.conf 文件。端口默認為53。可以使用IPv4和IPv6地址。

默認值: none

 


 

dns_hostsfile

要使用的主機文件。這個文件只被讀取一次,然后會存儲在內存中。要在修改后想再次讀取該文件,必須重新加載Kong。

默認值:/etc/hosts

 


 

dns_order

解決不同記錄類型的順序。LAST類型指的是最后一次成功的查找的類型(對於指定的名稱)。格式是一個(大小寫不敏感)逗號分隔的列表。

默認值: LAST,SRV,A,CNAME

 


 

dns_stale_ttl

定義在緩存中保存DNS記錄的TTL時間。當新的DNS記錄在后台獲取時,這個值將被使用。陳舊的數據將從記錄的過期時間使用,直到刷新查詢完成,或者dns_stale_ttl的秒數已經過去。

默認值:4

 


 

dns_not_found_ttl

空DNS響應和 "(3) name error" 響應的TTL時間(以秒為單位)

默認值:30

 


 

dns_error_ttl

錯誤響應的TTL時間(以秒為單位)

默認值:1

 


 

dns_no_sync

如果啟用了,那么在cache-miss時,每個請求都會觸發自己的dns查詢。當為相同的名稱/類型禁用多個請求時,將同步到單個查詢。

默認值: off

 


 

開發與其他屬性

從lua-nginx-module繼承的附加設置,可以更靈活和更高級的使用。
有關更多信息,請參見lua-nginx-module文檔:https://github.com/openresty/lua-nginx-module

 


 

lua_ssl_trusted_certificate

在PEM格式的Lua cosockets的證書權威文件的絕對路徑。該證書將用於驗證Kong的數據庫連接,當啟用pg_ssl_verifycassandra_ssl_verify時。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_ssl_trusted_certificate

默認值: none

 


 

lua_ssl_verify_depth

在Lua cosockets使用的服務器證書鏈中設置驗證深度,通過lua_ssl_trusted_certificate 設置。

這包括為Kong的數據庫連接配置的證書。

詳情查閱: https://github.com/openresty/lua-nginx-module#lua_ssl_verify_depth

默認值: 1

 


 

lua_package_path

設置Lua模塊搜索路徑(LUA_PATH)。在默認搜索路徑中,開發或使用不存儲的自定義插件時非常有用。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_package_path

默認值: none

 


 

lua_package_cpath

設置Lua C模塊搜索路徑(LUA_CPATH)。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_package_cpath

默認值: none

 


 

lua_socket_pool_size

指定與每個遠程服務器相關聯的每個cosocket連接池的大小限制。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_socket_pool_size

默認值:30

配置屬性詳解

可以新建配置文件/etc/kong/kong.conf進行添加修改。

常規屬性

prefix

工作目錄。相當於Nginx的前綴路徑,包含臨時文件和日志。每個流程必須有一個單獨的工作目錄。

默認:/usr/local/kong

 


 

log_level

Nginx服務器的日志級別。可以在<prefix>/logs/error.log
請參閱 http://nginx.org/en/docs/ngx_core_module.html#error_log,以獲得公認的值列表。

默認:notice

 


 

proxy_access_log

代理端口請求訪問日志的路徑。設置為off以禁用日志代理請求。如果這個值是相對路徑,那么它將被放置於前綴路徑之下。

默認:logs/access.log

 


 

proxy_error_log

代理端口請求錯誤日志的路徑。這些日志的粒度由log_level指令進行調整。

默認:logs/error.log

 


 

admin_access_log

Admin API的路徑請求訪問日志。設置為off以禁用Admin API請求日志。如果這個值是相對路徑,那么它將被放置於前綴路徑之下。

默認:logs/admin_access.log

 


 

admin_error_log

Admin API請求錯誤日志的路徑。這些日志的粒度由log_level指令進行調整。

默認:logs/error.log

 


 

custom_plugins

這個節點應該加載的附加插件的逗號分隔列表。使用這個屬性來加載與Kong不捆綁的定制插件。插件將從kong.plugins.{name}.*命名空間加載。

默認:none
示例:my-plugin,hello-world,custom-rate-limiting

 


 

anonymous_reports

發送匿名的使用數據,比如錯誤堆棧跟蹤,以幫助改進Kong。

默認:on

 


 

Nginx屬性

proxy_listen

代理服務偵聽的地址和端口的逗號分隔的列表。代理服務是Kong的公共入口點,它代理從您的使用者到您的后端服務的流量。這個值接受IPv4、IPv6和主機名。

可以為每一對指定一些后綴:

  • ssl 將要求通過啟用TLS的特定地址/端口進行所有連接。
  • http2 允許客戶端打開http/2連接到Kong的代理服務
  • 最后, proxy_protocol 將為給定的地址/端口啟用代理協議。

這個節點的代理端口,啟用了“控制面板”模式(沒有流量代理功能),可以配置連接到同一數據庫的節點集群。

查看 http://nginx.org/en/docs/http/ngx_http_core_module.html#listen 用於描述這個和其他*_listen值的接受格式。

默認:0.0.0.0:8000, 0.0.0.0:8443 ssl
示例:0.0.0.0:80, 0.0.0.0:81 http2, 0.0.0.0:443 ssl, 0.0.0.0:444 http2 ssl


 

admin_listen

管理接口監聽的地址和端口的逗號分隔的列表。Admin接口是允許您配置和管理Kong的API。對該接口的訪問應該僅限於Kong管理員。這個值接受IPv4、IPv6和主機名。可以為每一對指定一些后綴:

  • ssl 將要求通過啟用TLS的特定地址/端口進行所有連接。
  • http2 允許客戶端打開http/2連接到Kong的代理服務
  • 最后, proxy_protocol 將為給定的地址/端口啟用代理協議。

這個值可以被設置為off,從而禁用這個節點的Admin接口,從而使“數據面板”模式(沒有配置功能)從數據庫中拉出它的配置更改。

默認:127.0.0.1:8001, 127.0.0.1:8444 ssl
示例:127.0.0.1:8444 http2 ssl

 


 

nginx_user

定義工作進程使用的用戶和組憑據。如果省略組,則使用名稱與用戶名相同的組。

默認:nobody nobody
示例:nginx www

 


 

nginx_worker_processes

確定Nginx生成的工作進程的數量。請參閱http://nginx.org/en/docs/ngx_core_module.html#worker 流程,以便詳細使用該指令和對已接受值的描述。

默認值:auto

 


 

nginx_daemon

確定Nginx是否會作為守護進程或前台進程運行。主要用於開發或在Docker環境中運行Kong。

查閱 http://nginx.org/en/docs/ngx_core_module.html#daemon.

默認:on

 


 

mem_cache_size

數據庫實體內存緩存的大小。被接受的單位是k和m,最低推薦值為幾個MBs。

默認:128m

 


 

ssl_cipher_suite

定義Nginx提供的TLS密碼。可接受的值modern, intermediate, old, or custom。請參閱 https://wiki.mozilla.org/Security/Server_Side_TLS
,了解每個密碼套件的詳細描述。

默認值:modern

 


 

ssl_ciphers

定義一個由Nginx提供的LTS ciphers的自定義列表。這個列表必須符合openssl ciphers定義的模式。如果ssl_cipher_suite不是custom,那么這個值就會被忽略。

默認值:none

 


 

ssl_cert

啟用SSL時,proxy_listen的SSL證書的絕對路徑。

默認值:none

 


 

ssl_cert_key

啟用SSL時,proxy_listen的SSL key的絕對路徑。

默認值:none

 


 

client_ssl

當代理請求時,確定Nginx是否應該發送客戶端SSL證書。

默認值:off

 


 

client_ssl_cert

如果啟用了client_ssl,用於proxy_ssl_certificate配置的客戶端SSL證書的絕對路徑。注意,這個值是靜態地在節點上定義的,並且當前不能在每個api的基礎上配置。

默認值:none

 


 

client_ssl_cert_key

如果啟用了client_ssl,用於proxy_ssl_certificate_key配置的客戶端SSL證書的絕對路徑。注意,這個值是靜態地在節點上定義的,並且當前不能在每個api的基礎上配置。

默認值:none

 


 

admin_ssl_cert

啟用了SSL后, admin_listen 的SSL證書的絕對路徑。

默認值:none

 


 

admin_ssl_cert_key

啟用了SSL后, admin_listen 的SSL key的絕對路徑。

默認值:none

 


 

upstream_keepalive

在每個工作進程,設置緩存中保存的upstream服務的空閑keepalive連接的最大數量。當超過這個數字時,會關閉最近最少使用的連接。

默認值:60

 


 

server_tokens

在錯誤頁面,和ServerVia(如果請求被代理)的響應頭字段,啟用或禁用展示Kong的版本。

默認值:on

 


 

latency_tokens

X-Kong-Proxy-LatencyX-Kong-Upstream-Latency響應頭字段中,啟用或禁用展示Kong的潛在信息。

默認值:on

 


 

trusted_ips

定義可信的IP地址塊,使其知道如何發送正確的 X-Forwarded-* 頭部信息。來自受信任的ip的請求使Kong轉發他們的 X-Forwarded-* headers upstream。不受信任的請求使Kong插入自己的 X-Forwarded-* headers。

該屬性還在Nginx配置中設置 set_real_ip_from 指令(s)。它接受相同類型的值(CIDR塊),但它是一個逗號分隔的列表。

如果相信 all /!\ IPs,請把這個值設為0.0.0.0/0,::/0

如果特殊值unix:被指定了,所有的unix域套接字都將被信任。

查閱 the Nginx docs 了解 更詳細的set_real_ip_from配置資料。

Default: none

 


 

real_ip_header

定義請求頭字段,它的值將被用來替換客戶端地址。在Nginx配置中使用相同名稱的指令 ngx_http_realip_module 設置該值。

如果這個值接收到 proxy_protocol,那么 proxy_protocol 參數將被附加到Nginx模板的 listen 指令中。

查閱 the Nginx docs 尋找更詳細的描述。

默認值: X-Real-IP

 


 

real_ip_recursive

該值設置了Nginx配置中同名的 ngx_http_realip_module 指令。

查閱 the Nginx docs 尋找更詳細的描述。

默認值: off

 


 

client_max_body_size

指定在 Content-Length 的請求頭中,定義Kong代理的請求的最大被允許的請求體大小。如果請求超過這個限度,Kong將返回413(請求實體太大)。將該值設置為0將禁用檢查請求體的大小。

提示: 查閱關於 the Nginx docs 這個參數的進一步描述。數值可以用km后綴,表示限制是千字節,還是兆字節。

默認值:0

 


 

client_body_buffer_size

定義讀取請求主體的緩沖區大小。如果客戶端請求體大於這個值,則閥體將被緩沖到磁盤。請注意,當閥體被緩沖到磁盤的時候,訪問或操縱請求主體可能無法工作,因此最好將這個值設置為盡可能高的值。(例如,將其設置為client_max_body_size,以迫使請求體保持在內存中)。請注意,高並發性環境需要大量的內存分配來處理許多並發的大型請求體。

提示: 查閱關於 the Nginx docs 這個參數的進一步描述。數值可以用km后綴,表示限制是千字節,還是兆字節。

默認值:8k

 


 

error_default_type

當請求Accept標頭丟失時,使用默認的MIME類型,且Nginx為這個請求返回一個錯誤。可接受的值包括 text/plain, text/html, application/json, 和application/xml.

默認值:text/plain

 


 

數據存儲屬性

Kong將存儲所有的數據(如api、消費者和插件)到Cassandra或PostgreSQL。

屬於同一集群的所有Kong節點都必須連接到同一個數據庫。

從Kong0.12.0開始:
PostgreSQL 9.4支持應該被認為是棄用。鼓勵用戶升級到9.5+
應該考慮支持Cassandra 2.1的支持。鼓勵用戶升級到2.2+

 


 

database

確定這個節點將使用哪個PostgreSQL或Cassandra作為它的數據存儲。可以設置為:postgrescassandra

默認值:postgres

 


 

Postgres settings

名稱 描述
pg_host Postgres服務器的主機
pg_port Postgres服務器的端口
pg_user Postgres用戶
pg_password Postgres用戶的密碼
pg_database 數據庫連接。必須存在
pg_ssl 啟用SSL連接到服務器
pg_ssl_verify 如果啟用了pg_ssl,則切換服務器證書驗證。看到lua_ssl_trusted_certificate設置。

 


 

Cassandra settings

名稱 描述
cassandra_contact_points 指向您的Cassandra集群的鏈接點列表,使用逗號分割。
cassandra_port 你的節點監聽的端口
cassandra_keyspace 在集群中使用的關鍵空間。如果不存在,就會被創建。
cassandra_consistency 在閱讀/寫作時使用一致性設置。
cassandra_timeout 讀取/寫入 超時(ms)時間。
cassandra_ssl 啟用SSL連接到節點。
cassandra_ssl_verify 如果啟用了cassandra_ssl,則切換服務器證書驗證。查看 lua_ssl_trusted_certificate 設置。
cassandra_username 使用PasswordAuthenticator時的用戶名。
cassandra_password 在使用PasswordAuthenticator時的密碼。
cassandra_consistency 在讀取/寫入Cassandra集群時使用一致性設置。
cassandra_lb_policy 當在您的Cassandra集群中分布查詢時使用負載平衡策略。可設置為 RoundRobinDCAwareRoundRobin 。如果您使用的是多數據中心集群,則后者更好。如果是這樣,還要設置 cassandra_local_datacenter
cassandra_local_datacenter 在使用DCAwareRoundRobin政策時,必須指定本地(最近)的集群名稱到這個Kong節點。
cassandra_repl_strategy 如果第一次創建密鑰空間,請指定復制策略。
cassandra_repl_factor SimpleStrategy指定一個復制因子。
cassandra_data_centers NetworkTopologyStrategy(網絡拓撲策略)指定數據中心。
cassandra_schema_consensus_timeout Cassandra節點之間同步scheme的超時( ms)時間。這個值只在數據遷移期間使用。

 


 

數據緩存屬性

為了避免與數據存儲不必要的通信,Kong可配置緩存實體(比如api、消費者、憑證等等)的間隔時間。如果緩存實體被更新,它也會處理也會失效。

本節介紹關於配置Kong此類配置實體緩存。

 


 

db_update_frequency

頻率(以秒為單位),用於檢查帶有數據存儲的更新實體。當節點通過Admin API創建、更新或刪除實體時,其他節點需要等待下一次輪詢(由這個值配置),以清除舊的緩存實體並開始使用新的緩存。

默認值:5 seconds

 


 

db_update_propagation

在數據存儲中為實體所花費的時間(以秒為單位)被傳播到另一個數據中心的副本節點。當在分布式環境中,比如多數據中心Cassandra集群時,這個值應該是Cassandra將一行傳播到其他數據中心的最大秒數。當設置了該值,該屬性將增加Kong傳播實體變更所花費的時間。單數據中心設置或PostgreSQL服務器不應該受到這樣的延遲,並且這個值可以安全地設置為0。

默認值: 0 seconds

 


 

db_cache_ttl

該節點數據存儲實體緩存的生存時間(以秒為單位)。數據庫遺漏(沒有實體)也會根據這個設置進行緩存。如果設置為0,那么這種緩存的實體/遺漏永遠不會過期。

默認值:3600 seconds(1小時)

 


 

DNS解析屬性

Kong將把主機名解析為 SRVA 記錄(按照該順序,CNAME 記錄將在此過程中被取消)。如果一個名稱被解析為SRV記錄,它會通過從DNS服務器接收到端口以覆蓋給定的端口號。

DNS選項SEARCHNDOTS(來自/etc/resolv.conf 文件)將被用於將短名稱擴展到完全限定的名稱。因此,它將首先嘗試完整 SEARCH SRV類型的列表,如果失敗,它將會嘗試SEARCH A記錄列表,等等。

ttl的持續時間內,內部DNS解析器將對DNS記錄的條目上做負載均衡請求。對於SRV記錄,可以設置權重,但是它只會使用記錄中最低優先級字段條目。

 


 

dns_resolver

設置域名服務器列表,使用逗號分隔。格式如: ip[:port] 。如果沒有制定域名服務器,name就使用本地 resolv.conf 文件。端口默認為53。可以使用IPv4和IPv6地址。

默認值: none

 


 

dns_hostsfile

要使用的主機文件。這個文件只被讀取一次,然后會存儲在內存中。要在修改后想再次讀取該文件,必須重新加載Kong。

默認值:/etc/hosts

 


 

dns_order

解決不同記錄類型的順序。LAST類型指的是最后一次成功的查找的類型(對於指定的名稱)。格式是一個(大小寫不敏感)逗號分隔的列表。

默認值: LAST,SRV,A,CNAME

 


 

dns_stale_ttl

定義在緩存中保存DNS記錄的TTL時間。當新的DNS記錄在后台獲取時,這個值將被使用。陳舊的數據將從記錄的過期時間使用,直到刷新查詢完成,或者dns_stale_ttl的秒數已經過去。

默認值:4

 


 

dns_not_found_ttl

空DNS響應和 "(3) name error" 響應的TTL時間(以秒為單位)

默認值:30

 


 

dns_error_ttl

錯誤響應的TTL時間(以秒為單位)

默認值:1

 


 

dns_no_sync

如果啟用了,那么在cache-miss時,每個請求都會觸發自己的dns查詢。當為相同的名稱/類型禁用多個請求時,將同步到單個查詢。

默認值: off

 


 

開發與其他屬性

從lua-nginx-module繼承的附加設置,可以更靈活和更高級的使用。
有關更多信息,請參見lua-nginx-module文檔:https://github.com/openresty/lua-nginx-module

 


 

lua_ssl_trusted_certificate

在PEM格式的Lua cosockets的證書權威文件的絕對路徑。該證書將用於驗證Kong的數據庫連接,當啟用pg_ssl_verifycassandra_ssl_verify時。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_ssl_trusted_certificate

默認值: none

 


 

lua_ssl_verify_depth

在Lua cosockets使用的服務器證書鏈中設置驗證深度,通過lua_ssl_trusted_certificate 設置。

這包括為Kong的數據庫連接配置的證書。

詳情查閱: https://github.com/openresty/lua-nginx-module#lua_ssl_verify_depth

默認值: 1

 


 

lua_package_path

設置Lua模塊搜索路徑(LUA_PATH)。在默認搜索路徑中,開發或使用不存儲的自定義插件時非常有用。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_package_path

默認值: none

 


 

lua_package_cpath

設置Lua C模塊搜索路徑(LUA_CPATH)。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_package_cpath

默認值: none

 


 

lua_socket_pool_size

指定與每個遠程服務器相關聯的每個cosocket連接池的大小限制。

詳情查閱:https://github.com/openresty/lua-nginx-module#lua_socket_pool_size

默認值:30


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM