Kong2.0配置文件

Kong配置文件

在deepin系統下,Kong的配置文件在/etc/kong/目錄下,我是用的是由kong.conf.default複製的kong.conf文件

通用部分

prefix

kong的工作路徑,默認/usr/local/kong/,差生的日誌文件等默認都在該目錄下。

log_level

日誌等級,默認是notice。日誌的等級是[ debug | info | notice | warn | error | crit ],從左向右詳細度依次遞減

proxy_access_log

訪問日誌,默認是logs/access.log。可以修改自己的文件路徑,如果是相對路徑,會在前面加prefix的參數。當設置爲off的時候,不寫日誌

proxy_error_log

錯誤日誌,默認是logs/error.log。可以修改自己的文件路徑,如果是相對路徑,會在前面加prefix的參數

admin_access_log

管理訪問日誌,默認是logs/admin_access.log。其他同proxy_access_log參數

admin_error_log

管理錯誤日誌,默認是logs/error.log。管理錯誤日誌和訪問錯誤日誌在一個文件下,也可以分開,同時其錯誤日誌等級依賴於log_level參數

status_access_log

狀態訪問日誌,默認是off關閉。訪問狀態API的時候的訪問日誌,相對路徑加prefix參數

status_error_log

狀態錯誤日誌,默認在logs/status_error.log。同時其錯誤日誌等級依賴於log_level參數

plugins

插件列表,以逗號分割的字符串。在kong啓動的時候會載入列表中的所有插件,當值爲off的時候不裝載任何插件。如果之前配置過插件但是沒有在列表中,kong不能啓動,所以當刪除某個插件時,移除其所有實例,然後再重啓。

go_pluginserver_exe

運行golang寫的插件的路徑,默認是/usr/local/bin/go-pluginserver

go_plugins_dir

golang寫的插件的下載地址,默認是off。當值是off的時候不允許適用golang寫的插件。

anonymous_reports

發送匿名報告給kong開發者,默認是on。

混合模式部分

role

混合模式中有兩種角色,一種是控制節點,一種是數據節點。控制節點可以將自己的配置更新給數據節點。其中控制節點可以使用數據庫,數據節點不使用數據庫。
traditional 不使用混合模式
control_plane 控制節點
data_plane 數據節點

cluster_cert

當使用混合模式時,用於保證控制節點和數據節點信息安全的證書的文件名。使用kong hybrid命令創建證書/鑰匙對。

cluster_cert_key

當使用混合模式時,用於保證控制節點和數據節點信息安全的證書鑰匙的文件名。使用kong hybrid命令創建證書/鑰匙對。

cluster_control_plane

僅使用於數據節點,指定要更新的配置來自於哪個控制節點,以host:port結構

cluster_listen

以逗號分割的host:port地址列表,指定哪些控制節點來監聽數據節點的連接,僅使用於控制節點

Nginx部分(和Nginx配置相同)

proxy_listen

代理監聽,以逗號分割的地址端口對,形如0.0.0.0:8001。是Kong的公共入口,通過其訪問到後面的服務。
後綴可以配置配置每個地址對

後綴名 作用
ssl 要求所有連接都是基於安全傳輸層協議
http2 允許客戶端與Kong建立http2連接
proxy_protocol 對於監聽的地址允許適用代理協議
deferred 在Linux系統中適用延遲接受
bind 對於指定的監聽地址分開綁定
reuseport 每個工作進程創建自己獨立的socket
backlog 指定tcp隊列的最大值,在linux系統中,要同時修改net.core.somaxconn和backlog纔可以提升隊列大小

stream_listen

流監聽,以逗號分割的地址端口對,包含的後綴有proxy_protocol,bind, reuseport, backlog

admin_listen

管理監聽,對於管理Api的訪問監聽,和參數和後綴proxy_listen相同

status_listen

狀態監聽,獲取Kong節點的狀態的訪問監聽

nginx_user

聲明nginx的使用者

nginx_worker_processes

nginx的工作進程數,默認是auto,和內核數相同

nginx_daemon

nginx是否後臺運行,默認是on,開啓的狀態

mem_cache_size

配置緩存大小,默認128m,也接受形如128k的參數樣式

ssl_cert

安全證書的絕對路徑

ssl_cert_key

安全證書祕鑰的絕對路徑

client_ssl

雙向認證時,發送客戶端證書,默認是off

client_ssl_cert

客戶端安全證書的絕對路徑

client_ssl_cert_key

客戶端安全證書祕鑰的絕對路徑

admin_ssl_cert

管理api訪問的安全證書絕對路徑

admin_ssl_cert_key

管理api訪問的安全證書祕鑰絕對路徑

headers

以後逗號分割的在返回給客戶端時,需要在response的header中注入的內容

參數 內容
Server Kong/x.y.z,在由Kong產生的response中注入Kong的信息
Via Kong/x.y.z,當成功訪問Kong之後在response中注入Kong的信息
X-Kong-Proxy-Latency 毫秒級時長,在通過Kong以及所有插件之後,還沒有進入代理服務的時長
X-Kong-Response-Latency 毫秒級時長,當由Kong產生的response,所用的時長
X-Kong-Upstream-Latency 毫秒是時長,由後臺產生response的時長
X-Kong-Admin-Latency 毫秒級時長,管理api訪問的時長
server_tokens 相當於Server和Via
latency_tokens 包括上面的所有的時長參數

trusted_ips

可信IP,如果請求的IP在可信IP名單中,會在請求頭的X-Forwarded-*中添加IP進來,如果不在可信名單中,則會在請求頭的X-Forwarded-*中添加Kong自己的IP地址。形如192.168.1.0/24這樣的掩碼的形式表示。

real_ip_header

聲明請求頭的哪些key會被客戶端真實IP替換。可選參數: X-Real-IP,X-Forwarded-For,proxy_protocol

real_ip_recursive

是否遞歸地排除直至得到用戶ip,默認是關閉的

client_max_body_size

請求體的最大限制,單位是k或者m,如果設置爲0,不檢驗其大小

client_body_buffer_size

讀取請求體時的緩衝區大小,默認是8k

數據存儲部分

database

默認是postgres,提供了兩種選擇,另一種cassandra(沒用過,沒聽過)

postgres配置列表

配置名 解釋 默認
pg_host 數據庫地址 127.0.0.1
pg_port 數據庫端口號 5432
pg_timeout 數據庫鏈接,查詢,寫入超時時間(毫秒) 5000
pg_user 數據庫用戶名 kong
pg_password 密碼 none
pg_database 要鏈接的數據庫 kong
pg_schema 數據庫綱要(不會翻譯,應該不重要) none
pg_ssl 切換Kong與數據庫的鏈接使用ssl off
pg_ssl_verify 切換安全鏈接校驗 off
pg_max_concurrent_queries 併發最大的查詢數 0不檢驗
pg_semaphore_timeout 超時時長(超時會返回錯誤) 60000

數據庫緩存部分

未避免和數據庫的無效鏈接,Kong緩存了配置實體,也處理實體更新後的失效。

db_update_frequency

數據更新頻率,每隔多少秒,更新數據庫中的對應的實體到緩存中,也就是說適用Admin Api進行操作並能夠立即生效。默認是5秒

db_update_propagation

數據更新廣播,實質上是數據庫的同步,備份數據庫的同步時長(秒)

db_cache_ttl

當把實體緩存到Kong緩存中,多長時間(秒)失效。默認是0,也就是永遠不失效

db_resurrect_ttl

失效的緩存實體,間隔多長時間(秒)請求數據庫刷新緩存,默認是30秒

db_cache_warmup_entities

默認是services, plugins,預加載模塊到緩存中,提高了第一訪問的速度。

DNS解析部分

默認情況下DNS解析會適用/etc/hosts和/etc/resolv.conf作爲DNS解析的標準文件。

dns_resolver

dns解析器,已逗號分割的,形如localhost 127.0.0.1:5000, other 127.0.0.1:80

dns_hostfile

自定義hosts文件,默認是系統下的hosts文件

dns_order

dns處理順序,LAST:上一次成功找到的記錄
SRV: 權重記錄
A: address地址記錄
CNAME: 別名記錄

dns_valid_ttl

dns記錄有效時長

dns_stale_ttl

dns記錄在過期之後,在刷新之前還會在多長(分鐘)內被使用

dns_no_sync

同步開關,如果開啓,每個沒有命中dns緩存的請求都自己去查詢dns
如果關閉,不同的請求都同步成一個dns查詢

校準與性能部分

router_consistency

當使用admin api進行路由操作時,需要重建路由映射,strict模式,同步的重建路由, eventual模式,異步的進行重建路由,默認是strict模式

router_update_frequency

後臺多久(秒)檢測一次路由變更,默認是1秒,檢測到變更立即重建路由

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章