Kong API Gateway 配置文件詳解
2018-09-24 / Linuxops
版權說明:本文爲博主原創,如果轉載請註明來源。作爲學習筆記,不能保證所有知識點是完全正確以及表達無誤,用於生產環境配置時請斟酌。如有錯誤或建議請聯繫。侵刪聯繫:[email protected]。感謝各位!
一、前言
Kong配置文件是Kong服務的核心文件,它配置了Kong以怎麼的方式運行,並且依賴於這個配置生成Nginx的配置文件,本文通過解讀Kong配置文件,以瞭解Kong的運行和配置。
在成功安裝Kong以後,會有一個名爲kong.conf.default
默認的配置文件示例,如果是通過包管理器安裝的,通常位於/etc/kong/kong.conf.default
,我們要將其複製爲kong.conf
以便於我們修改使用他。
在Kong的配置文件中,約定了以下的幾條規則:
- 配置文件中以
#
開頭的行均爲註釋行,程序不會讀取這些內容。 - 在官方提供的默認配置文件中,以
#
開頭的有值的配置項目均爲默認配置。 - 所有的配置項,均可以在系統環境變量中配置,但是必須要加上
KONG_
爲前綴。 - 值爲布爾型的配置,可以使用
on
/off
或者true
/false
。 - 值爲列表的,必須使用半角逗號分割。
Kong的配置,大概分爲幾種,分別是:
- 常規配置:配置服務運行目錄,插件加載,日誌等等
- NGINX配置:配置Nginx注入,例如監聽IP和端口配置等等,用於Kong在啓動的時候生成Nginx配置文件
- 數據庫存儲配置:配數據庫類型,地址、用戶名密碼等等信息
- 數據庫緩存配置:配置數據的緩存規則,Kong會緩存諸如API信息、用戶、憑證等信息,以減少訪問數據庫次數提高性能
- DNS解析器配置:默認情況會使用系統設置,如
hosts
和resolv.conf
的配置,你也可以通過DNS的解析器配置來修改 - 其他雜項配置:繼承自lua-nginx模塊的其他設置允許更多的靈活性和高級用法。
下面我們一個模塊一個模塊解釋一下各項的配置。
二、常規配置
在常規配置中,主要是控制Kong一些運行時的一些配置,主要有如下配置:
配置項 | 默認值 | 說明 |
---|---|---|
prefix | /usr/local/kong/ | 配置Kong的工作目錄,相當於Nginx的工作目錄,這個目錄存放運行時的臨時文件和日誌,包括Kong啓動的時候自動生成的Nginx的配置文件。 每一個Kong經常必須有一個單獨的工作目錄 |
log_level | notice | Nginx的日誌級別。日誌存放/logs/error.log |
proxy_access_log | logs/access.log | 代理端口請求的日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在的目錄下 |
proxy_error_log | logs/error.log | 代理端口請求的錯誤日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在的目錄下 |
admin_access_log | logs/admin_access.log | Kong管理的API端口請求的日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在的目錄下 |
admin_error_log | logs/error.log | Kong管理的API端口請求的錯誤日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在的目錄下 |
plugins | bundled | Kong啓動的時候加載的插件,如果多個必須要使用半角逗號分割。默認情況下,只有捆綁官方發行版本的插件通過 bundled 這個值來加載。加載插件只是Kong在啓動的時候載入插件的代碼,但是並不會使用它,如果要使用他,還必須要通過管理API來配置 當然,如果你不想加載任何插件,可以使用 off 來關閉它,值得強調的一點bundled 值可以和其他插件名稱一起使用,bundled 並不是一個插件名稱,它代表了隨官方發行的所有插件。 |
anonymous_reports | on | 如果Kong進程發生了錯誤,會以匿名的方式將錯誤提交給Kong官方, 以幫助改善Kong。 |
在常規的配置中,主要配置了Kong運行的目錄日誌等信息。
無論如何,配置的文件或者目錄Kong必須要用權限訪問,否則會報錯。
三、Nginx注入配置
Kong基於Nginx,當然需要配置Nginx來滿足Kong的運行要求,Kong提供了Nginx的注入配置,使得我們更輕鬆控制。
在Nginx注入配置中,有如下配置:
配置項 | 默認值 | 說明 |
---|---|---|
proxy_listen | 0.0.0.0:8000, 0.0.0.0:8443 ssl | 配置Kong代理監聽的地址和端口,這個是Kong的入口,API調用都將通過這個端口請求。這個配置和Ngxin中的配置一致,通過SSL 可以指定接受https的請求支持IPv4和IPv6 |
admin_listen | 127.0.0.1:8001, 127.0.0.1:8444 ssl | 配置Kong的管理API監聽的端口,和proxy_listen配置一樣,但是這個配置不建議監聽在公網IP上。 |
nginx_user | nobody nobody | 配置Nginx的用戶名和用戶組,和Nginx的配置規則一樣 |
nginx_worker_processes | auto | 設置Nginx的進程書,通常等於CPU核心數 |
nginx_daemon | on | 是否以daemon的方式運行Ngxin |
mem_cache_size | 128m | 內存的緩存大小,可以使用k 和m 爲單位 |
ssl_cipher_suite | modern | 定義Nginx提供的TLS密碼,可以配置的值有:modern ,intermediate , old , custom . |
ssl_ciphers | 定義Nginx提供的TLS密碼的列表,參考Nginx的配置 | |
ssl_cert | 配置SSL證書的crt路徑,必須是要絕對路徑 | |
ssl_cert_key | 設置SSL證書的key文件,必須是絕對路徑 | |
client_ssl | off | ..... |
client_ssl_cert | ..... | |
client_ssl_cert_key | ..... | |
admin_ssl_cert | ..... | |
admin_ssl_cert_key | ..... | |
headers | server_tokens, latency_tokens | 設置再相應客戶端時候應該注入的頭部,可以設置的值如下: - server_tokens : 注入'Via'和'Server'頭部.- latency_tokens : 注入'X-Kong-Proxy-Latency'和'X-Kong-Upstream-Latency' 頭部.- X-Kong-<header-name> : 只有在適當的時候注入特定的頭部這個配置可以被設置爲 off 。當然,即便設置了off 以後,插件依然可以注入頭部 |
trusted_ips | 定義可信的IP地址段,通常不建議在此處限制請求,應該再插件中過濾 | |
real_ip_header | X-Real-IP | 獲取客戶端真實的IP,將值通過同步的形式傳遞給後端 |
real_ip_recursive | off | 這個值在Nginx配置中設置了同名的ngx_http_realip_module指令 |
client_max_body_size | 0 | 配置Nginx接受客戶端最大的body長度,如果超過此配置 將返回413。 設置爲 0 則不檢查長度 |
client_body_buffer_size | 8k | 設置讀取緩衝區大小,如果超過內存緩衝區大小,那麼NGINX會緩存在磁盤中,降低性能。 |
error_default_type | text/plain | 當請求' Accept '頭丟失,Nginx返回請求錯誤時使用的默認MIME類型。可以配置的值爲:text/plain ,text/html , application/json , application/xml . |
在Nginx注入配置中,配置了Nginx的基本的參數,這些參數大部分和NGINX的配置值是一樣的,可以通過Nginx的配置文檔瞭解一下。
四、 數據庫存儲配置
數據庫配置的模塊配置數據庫相關的連接信息等等。主要有如下配置:
配置項 | 默認值 | 說明 |
---|---|---|
database | postgres | 設置數據庫類型,Kong支持兩種數據庫,一種是postgres,一種是cassandra |
PostgreSQL配置 | 如果database 設置爲postgres 以下配置生效 |
|
pg_host | 127.0.0.1 | 設置PostgreSQL的連接地址 |
pg_port | 5432 | 設置PostgreSQL的端口 |
pg_user | kong | 設置PostgreSQL的用戶名 |
pg_password | 設置PostgreSQL的密碼 | |
pg_database | kong | 設置數據庫名稱 |
pg_ssl | off | 是否開啓ssl連接 |
pg_ssl_verify | off | 如果啓用了' pg_ssl ',則切換服務器證書驗證。 |
cassandra配置 | 如果database 設置爲cassandra 以下配置生效 |
|
cassandra_contact_points | 127.0.0.1 | ..... |
cassandra_port | 9042 | ..... |
cassandra_keyspace | kong | ..... |
cassandra_timeout | 5000 | ..... |
cassandra_ssl | off | ..... |
cassandra_ssl_verify | off | ..... |
cassandra_username | kong | ..... |
cassandra_password | ..... | |
cassandra_consistency | ONE | ..... |
cassandra_lb_policy | RoundRobin | ..... |
cassandra_local_datacenter | ..... | |
cassandra_repl_strategy | SimpleStrategy | ..... |
cassandra_repl_factor | 1 | ..... |
cassandra_data_centers | dc1:2,dc2:3 | ..... |
cassandra_schema_consensus_timeout | 10000 | ..... |
推薦使用PostgreSQL數據庫作爲生產環境的存儲,PostgreSQL具有良好的性能和穩定性,是一個非常優秀的開源數據庫。
五、 數據庫緩存配置
在上一節中,配置了Kong持久化存儲,顯然如果每次的請求都需要去查詢數據庫中的相關信息那無疑是非常消耗資源,性能和穩定性也會大大降低,作爲一個API網關肯定是不能忍的,解決這個問題的辦法就是緩存,Kong將數據緩存在內存中,這樣會大大提高性能,本節介紹Kong的緩存配置。
配置項 | 默認值 | 說明 |
---|---|---|
db_update_frequency | 5 | 節點更新數據庫的時間,以秒爲單位。 這個配置設置了節點查詢數據庫的時間,假如有3臺Kong服務器節點ABC,如果再A節點增加了一個API網關,那麼B和C節點最多需要等待 db_update_frequency 時間才能被更新到。 |
db_update_propagation | 0 | 數據庫節點的更新時間。 如果使用了Cassandra數據庫集羣,那麼如果數據庫有更新,最多需要 db_update_propagation 時間來同步所有的數據庫副本。如果使用PostgreSQL或者單數據庫,這個值可以被設置爲0 |
db_cache_ttl | 0 | 緩存生效時間,單位秒。如果設置爲0表示永不過期 Kong從數據庫中讀取數據並且緩存,在ttl過期後會刪除這個緩存然後再一次讀取數據庫並緩存 |
db_resurrect_ttl | 30 | 緩存刷新時間,單位秒。當數據存儲中的陳舊實體無法刷新時(例如,數據存儲不可訪問),應該對其進行恢復。當這個TTL過期時,將嘗試刷新陳舊的實體。 |
六、 DNS解析器配置
默認情況下,DNS解析器將使用標準配置文件/etc/hosts
和/etc/resolv.conf
。如果設置了環境變量LOCALDOMAIN
和RES_OPTIONS
,那麼後一個文件中的設置將被覆蓋。
配置項 | 默認值 | 說明 |
---|---|---|
dns_resolver | 配置DNS服務器列表,用半角逗號分割,每個條目使用ip[:port]的格式,這個配置僅提供給Kong使用,不會覆蓋節點系統的配置,如果沒有配置則使用系統的設置。接受IPv4和IPv6的地址。 | |
dns_hostsfile | /etc/hosts | 配置Kong的hosts文件,這個配置同樣僅提供給Kong使用,不會覆蓋節點系統的配置。 需要說明的是這個文件僅讀取一次,讀取的內容會緩存再內存中,如果修改了此文件,必須要重啓Kong才能生效。 |
dns_order | LAST,SRV,A,CNAME | 解析不同記錄類型的順序。“LAST”類型表示最後一次成功查找的類型(用於指定的名稱) |
dns_stale_ttl | 4 | 配置DNS記錄緩存過期時間 |
dns_not_found_ttl | 30 | 這個配置值不知道該如何理解?? |
dns_error_ttl | 1 | ..... |
dns_no_sync | off | 如果啓用了該項,那麼在DNS緩存過期之後,每一次請求都會發起DNS查詢。在禁用此項時,那麼相同的域名多次請求會同步到一個查詢中共享返回值。 |
在DNS配置中,我們基本上不需要更改,官網的配置給出了最優的配置。如果我們需要在host
文件中定義後端綁定的域名,一定要在編輯hosts
文件後重載Kong的配置,或者重啓Kong,無論hosts
的文件是否是/etc/hosts
,否則都不會生效的。
七、 其他雜項配置
雜項配置基本上關於LUA的配置,如果不熟悉請不要修改,按照官方默認即可。
配置項 | 默認值 | 說明 |
---|---|---|
lua_ssl_trusted_certificate | .... | |
lua_ssl_verify_depth | 1 | .... |
lua_package_path | ./?.lua;./?/init.lua; | .... |
lua_package_cpath | .... | |
lua_socket_pool_size | 30 | .... |
一、前言
Kong配置文件是Kong服務的核心文件,它配置了Kong以怎麼的方式運行,並且依賴於這個配置生成Nginx的配置文件,本文通過解讀Kong配置文件,以瞭解Kong的運行和配置。
在成功安裝Kong以後,會有一個名爲kong.conf.default
默認的配置文件示例,如果是通過包管理器安裝的,通常位於/etc/kong/kong.conf.default
,我們要將其複製爲kong.conf
以便於我們修改使用他。
在Kong的配置文件中,約定了以下的幾條規則:
- 配置文件中以
#
開頭的行均爲註釋行,程序不會讀取這些內容。 - 在官方提供的默認配置文件中,以
#
開頭的有值的配置項目均爲默認配置。 - 所有的配置項,均可以在系統環境變量中配置,但是必須要加上
KONG_
爲前綴。 - 值爲布爾型的配置,可以使用
on
/off
或者true
/false
。 - 值爲列表的,必須使用半角逗號分割。
Kong的配置,大概分爲幾種,分別是:
- 常規配置:配置服務運行目錄,插件加載,日誌等等
- NGINX配置:配置Nginx注入,例如監聽IP和端口配置等等,用於Kong在啓動的時候生成Nginx配置文件
- 數據庫存儲配置:配數據庫類型,地址、用戶名密碼等等信息
- 數據庫緩存配置:配置數據的緩存規則,Kong會緩存諸如API信息、用戶、憑證等信息,以減少訪問數據庫次數提高性能
- DNS解析器配置:默認情況會使用系統設置,如
hosts
和resolv.conf
的配置,你也可以通過DNS的解析器配置來修改 - 其他雜項配置:繼承自lua-nginx模塊的其他設置允許更多的靈活性和高級用法。
下面我們一個模塊一個模塊解釋一下各項的配置。
二、常規配置
在常規配置中,主要是控制Kong一些運行時的一些配置,主要有如下配置:
配置項 | 默認值 | 說明 |
---|---|---|
prefix | /usr/local/kong/ | 配置Kong的工作目錄,相當於Nginx的工作目錄,這個目錄存放運行時的臨時文件和日誌,包括Kong啓動的時候自動生成的Nginx的配置文件。每一個Kong經常必須有一個單獨的工作目錄 |
log_level | notice | Nginx的日誌級別。日誌存放 |
proxy_access_log | logs/access.log | 代理端口請求的日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在 |
proxy_error_log | logs/error.log | 代理端口請求的錯誤日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在 |
admin_access_log | logs/admin_access.log | Kong管理的API端口請求的日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在 |
admin_error_log | logs/error.log | Kong管理的API端口請求的錯誤日誌文件,可以設置爲off 來關閉日誌的記錄,也可以通過設置絕對路徑也可以設置相對路徑。如果設置了相對路徑,則日誌文件會保存在 |
plugins | bundled | Kong啓動的時候加載的插件,如果多個必須要使用半角逗號分割。默認情況下,只有捆綁官方發行版本的插件通過 bundled 這個值來加載。加載插件只是Kong在啓動的時候載入插件的代碼,但是並不會使用它,如果要使用他,還必須要通過管理API來配置.當然,如果你不想加載任何插件,可以使用off 來關閉它,值得強調的一點bundled 值可以和其他插件名稱一起使用,bundled 並不是一個插件名稱,它代表了隨官方發行的所有插件。 |
anonymous_reports | on | 如果Kong進程發生了錯誤,會以匿名的方式將錯誤提交給Kong官方, 以幫助改善Kong。 |
在常規的配置中,主要配置了Kong運行的目錄日誌等信息。
無論如何,配置的文件或者目錄Kong必須要用權限訪問,否則會報錯。
三、Nginx注入配置
Kong基於Nginx,當然需要配置Nginx來滿足Kong的運行要求,Kong提供了Nginx的注入配置,使得我們更輕鬆控制。
在Nginx注入配置中,有如下配置:
配置項 | 默認值 | 說明 |
---|---|---|
proxy_listen | 0.0.0.0:8000, 0.0.0.0:8443 ssl | 配置Kong代理監聽的地址和端口,這個是Kong的入口,API調用都將通過這個端口請求。這個配置和Ngxin中的配置一致,通過SSL 可以指定接受https的請求. 支持IPv4和IPv6 |
admin_listen | 127.0.0.1:8001, 127.0.0.1:8444 ssl | 配置Kong的管理API監聽的端口,和proxy_listen配置一樣,但是這個配置不建議監聽在公網IP上。 |
nginx_user | nobody nobody | 配置Nginx的用戶名和用戶組,和Nginx的配置規則一樣 |
nginx_worker_processes | auto | 設置Nginx的進程書,通常等於CPU核心數 |
nginx_daemon | on | 是否以daemon的方式運行Ngxin |
mem_cache_size | 128m | 內存的緩存大小,可以使用k 和m 爲單位 |
ssl_cipher_suite | modern | 定義Nginx提供的TLS密碼,可以配置的值有:modern ,intermediate , old , custom . |
ssl_ciphers | 定義Nginx提供的TLS密碼的列表,參考Nginx的配置 | |
ssl_cert | 配置SSL證書的crt路徑,必須是要絕對路徑 | |
ssl_cert_key | 設置SSL證書的key文件,必須是絕對路徑 | |
client_ssl | off | … |
client_ssl_cert | … | |
client_ssl_cert_key | … | |
admin_ssl_cert | … | |
admin_ssl_cert_key | … | |
headers | server_tokens, latency_tokens | 設置再相應客戶端時候應該注入的頭部,可以設置的值如下: - server_tokens : 注入’Via’和’Server’頭部.- latency_tokens : 注入’X-Kong-Proxy-Latency’和’X-Kong-Upstream-Latency’ 頭部.- X-Kong-<header-name> : 只有在適當的時候注入特定的頭部這個配置可以被設置爲 off 。當然,即便設置了off 以後,插件依然可以注入頭部 |
trusted_ips | 定義可信的IP地址段,通常不建議在此處限制請求,應該再插件中過濾 | |
real_ip_header | X-Real-IP | 獲取客戶端真實的IP,將值通過同步的形式傳遞給後端 |
real_ip_recursive | off | 這個值在Nginx配置中設置了同名的ngx_http_realip_module指令 |
client_max_body_size | 0 | 配置Nginx接受客戶端最大的body長度,如果超過此配置 將返回413。 設置爲 0 則不檢查長度 |
client_body_buffer_size | 8k | 設置讀取緩衝區大小,如果超過內存緩衝區大小,那麼NGINX會緩存在磁盤中,降低性能。 |
error_default_type | text/plain | 當請求’ Accept '頭丟失,Nginx返回請求錯誤時使用的默認MIME類型。可以配置的值爲:text/plain ,text/html , application/json , application/xml . |
在Nginx注入配置中,配置了Nginx的基本的參數,這些參數大部分和NGINX的配置值是一樣的,可以通過Nginx的配置文檔瞭解一下。
四、 數據庫存儲配置
數據庫配置的模塊配置數據庫相關的連接信息等等。主要有如下配置:
配置項 | 默認值 | 說明 |
---|---|---|
database | postgres | 設置數據庫類型,Kong支持兩種數據庫,一種是postgres,一種是cassandra |
PostgreSQL配置 | 如果database 設置爲postgres 以下配置生效 |
|
pg_host | 127.0.0.1 | 設置PostgreSQL的連接地址 |
pg_port | 5432 | 設置PostgreSQL的端口 |
pg_user | kong | 設置PostgreSQL的用戶名 |
pg_password | 設置PostgreSQL的密碼 | |
pg_database | kong | 設置數據庫名稱 |
pg_ssl | off | 是否開啓ssl連接 |
pg_ssl_verify | off | 如果啓用了’ pg_ssl ',則切換服務器證書驗證。 |
cassandra配置 | 如果database 設置爲cassandra 以下配置生效 |
|
cassandra_contact_points | 127.0.0.1 | … |
cassandra_port | 9042 | … |
cassandra_keyspace | kong | … |
cassandra_timeout | 5000 | … |
cassandra_ssl | off | … |
cassandra_ssl_verify | off | … |
cassandra_username | kong | … |
cassandra_password | … | |
cassandra_consistency | ONE | … |
cassandra_lb_policy | RoundRobin | … |
cassandra_local_datacenter | … | |
cassandra_repl_strategy | SimpleStrategy | … |
cassandra_repl_factor | 1 | … |
cassandra_data_centers | dc1:2,dc2:3 | … |
cassandra_schema_consensus_timeout | 10000 | … |
推薦使用PostgreSQL數據庫作爲生產環境的存儲,PostgreSQL具有良好的性能和穩定性,是一個非常優秀的開源數據庫。
五、 數據庫緩存配置
在上一節中,配置了Kong持久化存儲,顯然如果每次的請求都需要去查詢數據庫中的相關信息那無疑是非常消耗資源,性能和穩定性也會大大降低,作爲一個API網關肯定是不能忍的,解決這個問題的辦法就是緩存,Kong將數據緩存在內存中,這樣會大大提高性能,本節介紹Kong的緩存配置。
配置項 | 默認值 | 說明 |
---|---|---|
db_update_frequency | 5 | 節點更新數據庫的時間,以秒爲單位。 這個配置設置了節點查詢數據庫的時間,假如有3臺Kong服務器節點ABC,如果再A節點增加了一個API網關,那麼B和C節點最多需要等待 db_update_frequency 時間才能被更新到。 |
db_update_propagation | 0 | 數據庫節點的更新時間。 如果使用了Cassandra數據庫集羣,那麼如果數據庫有更新,最多需要 db_update_propagation 時間來同步所有的數據庫副本。如果使用PostgreSQL或者單數據庫,這個值可以被設置爲0 |
db_cache_ttl | 0 | 緩存生效時間,單位秒。如果設置爲0表示永不過期 Kong從數據庫中讀取數據並且緩存,在ttl過期後會刪除這個緩存然後再一次讀取數據庫並緩存 |
db_resurrect_ttl | 30 | 緩存刷新時間,單位秒。當數據存儲中的陳舊實體無法刷新時(例如,數據存儲不可訪問),應該對其進行恢復。當這個TTL過期時,將嘗試刷新陳舊的實體。 |
六、 DNS解析器配置
默認情況下,DNS解析器將使用標準配置文件/etc/hosts
和/etc/resolv.conf
。如果設置了環境變量LOCALDOMAIN
和RES_OPTIONS
,那麼後一個文件中的設置將被覆蓋。
配置項 | 默認值 | 說明 |
---|---|---|
dns_resolver | 配置DNS服務器列表,用半角逗號分割,每個條目使用ip[:port]的格式,這個配置僅提供給Kong使用,不會覆蓋節點系統的配置,如果沒有配置則使用系統的設置。接受IPv4和IPv6的地址。 | |
dns_hostsfile | /etc/hosts | 配置Kong的hosts文件,這個配置同樣僅提供給Kong使用,不會覆蓋節點系統的配置。 需要說明的是這個文件僅讀取一次,讀取的內容會緩存再內存中,如果修改了此文件,必須要重啓Kong才能生效。 |
dns_order | LAST,SRV,A,CNAME | 解析不同記錄類型的順序。“LAST”類型表示最後一次成功查找的類型(用於指定的名稱) |
dns_stale_ttl | 4 | 配置DNS記錄緩存過期時間 |
dns_not_found_ttl | 30 | 這個配置值不知道該如何理解?? |
dns_error_ttl | 1 | … |
dns_no_sync | off | 如果啓用了該項,那麼在DNS緩存過期之後,每一次請求都會發起DNS查詢。在禁用此項時,那麼相同的域名多次請求會同步到一個查詢中共享返回值。 |
在DNS配置中,我們基本上不需要更改,官網的配置給出了最優的配置。如果我們需要在host
文件中定義後端綁定的域名,一定要在編輯hosts
文件後重載Kong的配置,或者重啓Kong,無論hosts
的文件是否是/etc/hosts
,否則都不會生效的。
七、 其他雜項配置
雜項配置基本上關於LUA的配置,如果不熟悉請不要修改,按照官方默認即可。
配置項 | 默認值 | 說明 |
---|---|---|
lua_ssl_trusted_certificate | … | |
lua_ssl_verify_depth | 1 | … |
lua_package_path | ./?.lua;./?/init.lua; | … |
lua_package_cpath | … | |
lua_socket_pool_size | 30 | … |
文章參考:
https://linuxops.org/blog/kong/config.html
https://blog.csdn.net/luanpeng825485697/article/details/86478837