配置詳解 - 玩轉(zhuǎn)Kong網(wǎng)關(guān)

配置加載

Kong的默認(rèn)配置在 /etc/kong/kong.conf.default 碉钠。如果你通過(guò)一個(gè)官方的安裝包來(lái)安裝Kong唆缴。您可以復(fù)制下面的文件,開(kāi)始配置Kong:

$ cp /etc/kong/kong.conf.default /etc/kong/kong.conf

如果你的配置中的所有值都被考慮聘芜,那么Kong將使用默認(rèn)配置運(yùn)行燕偶。在開(kāi)始時(shí),Kong可能會(huì)查找的幾個(gè)缺省配置文件位置如下:

/etc/kong/kong.conf
/etc/kong.conf

您可以通過(guò)在CLI中使用-c / -conf參數(shù)自定義配置文件路徑來(lái)覆蓋此默認(rèn)配置:

$ kong start --conf /path/to/kong.conf

配置格式很簡(jiǎn)單:注釋由字符 # 定義旺韭。布爾值可以被指定為 on/off 或者true/false氛谜。

驗(yàn)證您的配置

您可以使用check命令來(lái)驗(yàn)證設(shè)置的完整性:

$ kong check <path/to/kong.conf>
configuration at <path/to/kong.conf> is valid

這個(gè)命令,將檢測(cè)您當(dāng)前設(shè)置的環(huán)境變量区端,并且在您的設(shè)置錯(cuò)誤時(shí)報(bào)錯(cuò)值漫。

此外,您還可以在調(diào)試模式下使用CLI织盼,以便更深入地了解正在啟動(dòng)的屬性:

$ kong start -c <kong.conf> --vv
2016/08/11 14:53:36 [verbose] no config file found at /etc/kong.conf
2016/08/11 14:53:36 [verbose] no config file found at /etc/kong/kong.conf
2016/08/11 14:53:36 [debug] admin_listen = "0.0.0.0:8001"
2016/08/11 14:53:36 [debug] database = "postgres"
2016/08/11 14:53:36 [debug] log_level = "notice"
[...]

環(huán)境變量

當(dāng)從配置文件中加載屬性時(shí)杨何,Kong也會(huì)查找相同名稱(chēng)的環(huán)境變量。這允許您通過(guò)環(huán)境變量完全配置Kong沥邻。

所有環(huán)境變量的前綴 KONG_ 危虱,大寫(xiě)并帶有與設(shè)置相同的名稱(chēng)將覆蓋默認(rèn)配置。
例如:

log_level = debug # in kong.conf

會(huì)被如下設(shè)置覆蓋:

$ export KONG_LOG_LEVEL=error

定制Nginx配置和嵌入Kong

調(diào)整Nginx配置是設(shè)置您的Kong實(shí)例的一個(gè)重要部分唐全,因?yàn)樗试S您優(yōu)化其性能埃跷,或者將Kong嵌入到已經(jīng)運(yùn)行的OpenResty實(shí)例中。

  • 自定義Nginx配置

Kong可以用 --nginx-conf 的參數(shù)啟動(dòng)邮利,重新加載和重新啟動(dòng)捌蚊,該參數(shù)必須指定Nginx配置模板。這樣的模板使用了Penlight模板引擎近弟,它是使用給定的Kong配置編譯的,然后在開(kāi)始Nginx之前被保存到您的Kong前綴目錄中挺智。

默認(rèn)模板可以在https://github.com/Kong/kong/tree/master/kong/templates
找到祷愉。它分為兩個(gè)Nginx配置文件:nginx.luanginx_kong.lua。前者是運(yùn)行Kong的最低的配置要求赦颇,其會(huì)包括后者二鳄。當(dāng)Kong開(kāi)始運(yùn)行時(shí),在開(kāi)始Nginx之前媒怯,它將這兩個(gè)文件復(fù)制到前綴目錄中订讼,看起來(lái)是這樣的:

/usr/local/kong
├── nginx-kong.conf
├── nginx.conf

如果您希望在Nginx配置中包含其他服務(wù)模塊,或者您必須調(diào)整不受Kong配置影響的全局設(shè)置扇苞,這里有一個(gè)建議:

# ---------------------
# custom_nginx.template
# ---------------------

worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.conf
daemon ${{NGINX_DAEMON}};                     # can be set by kong.conf

pid pids/nginx.pid;                      # this setting is 強(qiáng)制的
error_log logs/error.log ${{LOG_LEVEL}}; # can be set by kong.conf

events {
    use epoll; # custom setting
    multi_accept on;
}

http {
    # include default Kong Nginx config
    include 'nginx-kong.conf';

    # custom server
    server {
        listen 8888;
        server_name custom_server;

        location / {
          ... # etc
        }
    }
}

你可以這樣啟動(dòng)Kong:

$ kong start -c kong.conf --nginx-conf custom_nginx.template

如果您希望自定義Kong的Nginx子配置文件欺殿,最終添加其他Lua處理程序或定制lua_*指令寄纵,您可以在custom_nginx.template內(nèi)聯(lián)nginx_kong.lua這個(gè)配置。模板示例文件如下:

# ---------------------
# custom_nginx.template
# ---------------------

worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.conf
daemon ${{NGINX_DAEMON}};                     # can be set by kong.conf

pid pids/nginx.pid;                      # this setting is mandatory
error_log logs/error.log ${{LOG_LEVEL}}; # can be set by kong.conf

events {}

http {
  resolver ${{DNS_RESOLVER}} ipv6=off;
  charset UTF-8;
  error_log logs/error.log ${{LOG_LEVEL}};
  access_log logs/access.log;

  ... # etc
}
  • 在OpenResty里嵌入Kong

如果您正在運(yùn)行您自己的OpenResty服務(wù)器脖苏,您也可以通過(guò)使用include指令(類(lèi)似于上一節(jié)的示例)來(lái)輕松地嵌入Kong程拭。如果您有一個(gè)有效的頂級(jí)NGINX配置,那么就可以簡(jiǎn)單的引入Kong的配置:

# my_nginx.conf

http {
    include 'nginx-kong.conf';
}

你可以像這樣開(kāi)始你的實(shí)例:

$ nginx -p /usr/local/openresty -c my_nginx.conf

這樣Kong就會(huì)運(yùn)行在你的實(shí)例中棍潘。(Kong的配置在nginx-kong.conf里)

  • Kong為網(wǎng)站和你的api提供服務(wù)

API提供者的一個(gè)常見(jiàn)用例是讓Kong在代理端口上同時(shí)服務(wù)于一個(gè)網(wǎng)站和API本身——在生產(chǎn)中有80443恃鞋。例如:https://my-api.com(網(wǎng)站)和https://my-api.com/api/v1(API)。

為了實(shí)現(xiàn)這一點(diǎn)亦歉,我們不能簡(jiǎn)單地聲明一個(gè)新的虛擬服務(wù)模塊恤浪,就像我們?cè)谏弦还?jié)中所做的那樣。一個(gè)好的解決方案是使用一個(gè)定制的Nginx配置模板肴楷,該模板可以?xún)?nèi)聯(lián)nginx_kong.lua水由。添加一個(gè)新的location塊,與Kong代理location塊一起服務(wù)于網(wǎng)站:

# ---------------------
# custom_nginx.template
# ---------------------

worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.conf
daemon ${{NGINX_DAEMON}};                     # can be set by kong.conf

pid pids/nginx.pid;                      # this setting is mandatory
error_log logs/error.log ${{LOG_LEVEL}}; # can be set by kong.conf
events {}

http {
  # here, we inline the contents of nginx_kong.lua
  charset UTF-8;

  # any contents until Kong's Proxy server block
  ...

  # Kong's Proxy server block
  server {
    server_name kong;

    # any contents until the location / block
    ...

    # here, we declare our custom location serving our website
    # (or API portal) which we can optimize for serving static assets
    location / {
      root /var/www/my-api.com;
      index index.htm index.html;
      ...
    }

    # Kong's Proxy location / has been changed to /api/v1
    location /api/v1 {
      set $upstream_host nil;
      set $upstream_scheme nil;
      set $upstream_uri nil;

      # Any remaining configuration for the Proxy location
      ...
    }
  }

  # Kong's Admin server block goes below
}

配置屬性詳解

可以新建配置文件/etc/kong/kong.conf進(jìn)行添加修改阶祭。

常規(guī)屬性

prefix

工作目錄绷杜。相當(dāng)于Nginx的前綴路徑,包含臨時(shí)文件和日志濒募。每個(gè)流程必須有一個(gè)單獨(dú)的工作目錄鞭盟。

默認(rèn):/usr/local/kong


log_level

Nginx服務(wù)器的日志級(jí)別」逄辏可以在<prefix>/logs/error.log
請(qǐng)參閱 http://nginx.org/en/docs/ngx_core_module.html#error_log齿诉,以獲得公認(rèn)的值列表。

默認(rèn):notice


proxy_access_log

代理端口請(qǐng)求訪(fǎng)問(wèn)日志的路徑晌姚。設(shè)置為off以禁用日志代理請(qǐng)求粤剧。如果這個(gè)值是相對(duì)路徑,那么它將被放置于前綴路徑之下挥唠。

默認(rèn):logs/access.log


proxy_error_log

代理端口請(qǐng)求錯(cuò)誤日志的路徑抵恋。這些日志的粒度由log_level指令進(jìn)行調(diào)整。

默認(rèn):logs/error.log


admin_access_log

Admin API的路徑請(qǐng)求訪(fǎng)問(wèn)日志宝磨。設(shè)置為off以禁用Admin API請(qǐng)求日志弧关。如果這個(gè)值是相對(duì)路徑,那么它將被放置于前綴路徑之下唤锉。

默認(rèn):logs/admin_access.log


admin_error_log

Admin API請(qǐng)求錯(cuò)誤日志的路徑世囊。這些日志的粒度由log_level指令進(jìn)行調(diào)整。

默認(rèn):logs/error.log


custom_plugins

這個(gè)節(jié)點(diǎn)應(yīng)該加載的附加插件的逗號(hào)分隔列表窿祥。使用這個(gè)屬性來(lái)加載與Kong不捆綁的定制插件株憾。插件將從kong.plugins.{name}.*命名空間加載。

默認(rèn):none
示例:my-plugin,hello-world,custom-rate-limiting


anonymous_reports

發(fā)送匿名的使用數(shù)據(jù)晒衩,比如錯(cuò)誤堆棧跟蹤嗤瞎,以幫助改進(jìn)Kong墙歪。

默認(rèn):on


Nginx屬性

proxy_listen

代理服務(wù)偵聽(tīng)的地址和端口的逗號(hào)分隔的列表。代理服務(wù)是Kong的公共入口點(diǎn)猫胁,它代理從您的使用者到您的后端服務(wù)的流量箱亿。這個(gè)值接受IPv4、IPv6和主機(jī)名弃秆。

可以為每一對(duì)指定一些后綴:

  • ssl 將要求通過(guò)啟用TLS的特定地址/端口進(jìn)行所有連接届惋。
  • http2 允許客戶(hù)端打開(kāi)http/2連接到Kong的代理服務(wù)
  • 最后, proxy_protocol 將為給定的地址/端口啟用代理協(xié)議。

這個(gè)節(jié)點(diǎn)的代理端口菠赚,啟用了“控制面板”模式(沒(méi)有流量代理功能)脑豹,可以配置連接到同一數(shù)據(jù)庫(kù)的節(jié)點(diǎn)集群。

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

默認(rèn):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

管理接口監(jiān)聽(tīng)的地址和端口的逗號(hào)分隔的列表瘩欺。Admin接口是允許您配置和管理Kong的API。對(duì)該接口的訪(fǎng)問(wèn)應(yīng)該僅限于Kong管理員拌牲。這個(gè)值接受IPv4俱饿、IPv6和主機(jī)名∷觯可以為每一對(duì)指定一些后綴:

  • ssl 將要求通過(guò)啟用TLS的特定地址/端口進(jìn)行所有連接拍埠。
  • http2 允許客戶(hù)端打開(kāi)http/2連接到Kong的代理服務(wù)
  • 最后, proxy_protocol 將為給定的地址/端口啟用代理協(xié)議。

這個(gè)值可以被設(shè)置為off土居,從而禁用這個(gè)節(jié)點(diǎn)的Admin接口枣购,從而使“數(shù)據(jù)面板”模式(沒(méi)有配置功能)從數(shù)據(jù)庫(kù)中拉出它的配置更改。

默認(rèn):127.0.0.1:8001, 127.0.0.1:8444 ssl
示例:127.0.0.1:8444 http2 ssl


nginx_user

定義工作進(jìn)程使用的用戶(hù)和組憑據(jù)擦耀。如果省略組棉圈,則使用名稱(chēng)與用戶(hù)名相同的組。

默認(rèn):nobody nobody
示例:nginx www


nginx_worker_processes

確定Nginx生成的工作進(jìn)程的數(shù)量眷蜓。請(qǐng)參閱http://nginx.org/en/docs/ngx_core_module.html#worker 流程分瘾,以便詳細(xì)使用該指令和對(duì)已接受值的描述。

默認(rèn)值:auto


nginx_daemon

確定Nginx是否會(huì)作為守護(hù)進(jìn)程或前臺(tái)進(jìn)程運(yùn)行吁系。主要用于開(kāi)發(fā)或在Docker環(huán)境中運(yùn)行Kong芹敌。

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

默認(rèn):on


mem_cache_size

數(shù)據(jù)庫(kù)實(shí)體內(nèi)存緩存的大小。被接受的單位是k和m垮抗,最低推薦值為幾個(gè)MBs。

默認(rèn):128m


ssl_cipher_suite

定義Nginx提供的TLS密碼碧聪∶鞍妫可接受的值modern, intermediate, old, or custom。請(qǐng)參閱 https://wiki.mozilla.org/Security/Server_Side_TLS
逞姿,了解每個(gè)密碼套件的詳細(xì)描述辞嗡。

默認(rèn)值:modern


ssl_ciphers

定義一個(gè)由Nginx提供的LTS ciphers的自定義列表捆等。這個(gè)列表必須符合openssl ciphers定義的模式。如果ssl_cipher_suite不是custom续室,那么這個(gè)值就會(huì)被忽略栋烤。

默認(rèn)值:none


ssl_cert

啟用SSL時(shí),proxy_listen的SSL證書(shū)的絕對(duì)路徑挺狰。

默認(rèn)值:none


ssl_cert_key

啟用SSL時(shí)明郭,proxy_listen的SSL key的絕對(duì)路徑。

默認(rèn)值:none


client_ssl

當(dāng)代理請(qǐng)求時(shí)丰泊,確定Nginx是否應(yīng)該發(fā)送客戶(hù)端SSL證書(shū)薯定。

默認(rèn)值:off


client_ssl_cert

如果啟用了client_ssl,用于proxy_ssl_certificate配置的客戶(hù)端SSL證書(shū)的絕對(duì)路徑瞳购。注意话侄,這個(gè)值是靜態(tài)地在節(jié)點(diǎn)上定義的,并且當(dāng)前不能在每個(gè)api的基礎(chǔ)上配置学赛。

默認(rèn)值:none


client_ssl_cert_key

如果啟用了client_ssl年堆,用于proxy_ssl_certificate_key配置的客戶(hù)端SSL證書(shū)的絕對(duì)路徑。注意盏浇,這個(gè)值是靜態(tài)地在節(jié)點(diǎn)上定義的变丧,并且當(dāng)前不能在每個(gè)api的基礎(chǔ)上配置。

默認(rèn)值:none


admin_ssl_cert

啟用了SSL后缠捌, admin_listen 的SSL證書(shū)的絕對(duì)路徑锄贷。

默認(rèn)值:none


admin_ssl_cert_key

啟用了SSL后, admin_listen 的SSL key的絕對(duì)路徑曼月。

默認(rèn)值:none


upstream_keepalive

在每個(gè)工作進(jìn)程谊却,設(shè)置緩存中保存的upstream服務(wù)的空閑keepalive連接的最大數(shù)量。當(dāng)超過(guò)這個(gè)數(shù)字時(shí)哑芹,會(huì)關(guān)閉最近最少使用的連接炎辨。

默認(rèn)值:60


server_tokens

在錯(cuò)誤頁(yè)面,和ServerVia(如果請(qǐng)求被代理)的響應(yīng)頭字段聪姿,啟用或禁用展示Kong的版本碴萧。

默認(rèn)值:on


latency_tokens

X-Kong-Proxy-LatencyX-Kong-Upstream-Latency響應(yīng)頭字段中,啟用或禁用展示Kong的潛在信息末购。

默認(rèn)值:on


trusted_ips

定義可信的IP地址塊破喻,使其知道如何發(fā)送正確的 X-Forwarded-* 頭部信息。來(lái)自受信任的ip的請(qǐng)求使Kong轉(zhuǎn)發(fā)他們的 X-Forwarded-* headers upstream盟榴。不受信任的請(qǐng)求使Kong插入自己的 X-Forwarded-* headers曹质。

該屬性還在Nginx配置中設(shè)置 set_real_ip_from 指令(s)。它接受相同類(lèi)型的值(CIDR塊),但它是一個(gè)逗號(hào)分隔的列表羽德。

如果相信 all /!\ IPs几莽,請(qǐng)把這個(gè)值設(shè)為0.0.0.0/0,::/0

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

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

Default: none


real_ip_header

定義請(qǐng)求頭字段姨夹,它的值將被用來(lái)替換客戶(hù)端地址纤垂。在Nginx配置中使用相同名稱(chēng)的指令 ngx_http_realip_module 設(shè)置該值。

如果這個(gè)值接收到 proxy_protocol匀伏,那么 proxy_protocol 參數(shù)將被附加到Nginx模板的 listen 指令中洒忧。

查閱 the Nginx docs 尋找更詳細(xì)的描述。

默認(rèn)值: X-Real-IP


real_ip_recursive

該值設(shè)置了Nginx配置中同名的 ngx_http_realip_module 指令够颠。

查閱 the Nginx docs 尋找更詳細(xì)的描述熙侍。

默認(rèn)值: off


client_max_body_size

指定在 Content-Length 的請(qǐng)求頭中,定義Kong代理的請(qǐng)求的最大被允許的請(qǐng)求體大小履磨。如果請(qǐng)求超過(guò)這個(gè)限度蛉抓,Kong將返回413(請(qǐng)求實(shí)體太大)。將該值設(shè)置為0將禁用檢查請(qǐng)求體的大小剃诅。

提示: 查閱關(guān)于 the Nginx docs 這個(gè)參數(shù)的進(jìn)一步描述巷送。數(shù)值可以用km后綴,表示限制是千字節(jié)矛辕,還是兆字節(jié)笑跛。

默認(rèn)值:0


client_body_buffer_size

定義讀取請(qǐng)求主體的緩沖區(qū)大小。如果客戶(hù)端請(qǐng)求體大于這個(gè)值聊品,則閥體將被緩沖到磁盤(pán)飞蹂。請(qǐng)注意,當(dāng)閥體被緩沖到磁盤(pán)的時(shí)候翻屈,訪(fǎng)問(wèn)或操縱請(qǐng)求主體可能無(wú)法工作陈哑,因此最好將這個(gè)值設(shè)置為盡可能高的值。(例如伸眶,將其設(shè)置為client_max_body_size惊窖,以迫使請(qǐng)求體保持在內(nèi)存中)。請(qǐng)注意厘贼,高并發(fā)性環(huán)境需要大量的內(nèi)存分配來(lái)處理許多并發(fā)的大型請(qǐng)求體界酒。

提示: 查閱關(guān)于 the Nginx docs 這個(gè)參數(shù)的進(jìn)一步描述。數(shù)值可以用km后綴嘴秸,表示限制是千字節(jié)盾计,還是兆字節(jié)售担。

默認(rèn)值:8k


error_default_type

當(dāng)請(qǐng)求Accept標(biāo)頭丟失時(shí),使用默認(rèn)的MIME類(lèi)型署辉,且Nginx為這個(gè)請(qǐng)求返回一個(gè)錯(cuò)誤⊙宜模可接受的值包括 text/plain, text/html, application/json, 和application/xml.

默認(rèn)值:text/plain


數(shù)據(jù)存儲(chǔ)屬性

Kong將存儲(chǔ)所有的數(shù)據(jù)(如api哭尝、消費(fèi)者和插件)到Cassandra或PostgreSQL。

屬于同一集群的所有Kong節(jié)點(diǎn)都必須連接到同一個(gè)數(shù)據(jù)庫(kù)剖煌。

從Kong0.12.0開(kāi)始:
PostgreSQL 9.4支持應(yīng)該被認(rèn)為是棄用材鹦。鼓勵(lì)用戶(hù)升級(jí)到9.5+
應(yīng)該考慮支持Cassandra 2.1的支持。鼓勵(lì)用戶(hù)升級(jí)到2.2+


database

確定這個(gè)節(jié)點(diǎn)將使用哪個(gè)PostgreSQL或Cassandra作為它的數(shù)據(jù)存儲(chǔ)耕姊⊥疤疲可以設(shè)置為:postgrescassandra

默認(rèn)值:postgres


Postgres settings

名稱(chēng) 描述
pg_host Postgres服務(wù)器的主機(jī)
pg_port Postgres服務(wù)器的端口
pg_user Postgres用戶(hù)
pg_password Postgres用戶(hù)的密碼
pg_database 數(shù)據(jù)庫(kù)連接茉兰。必須存在
pg_ssl 啟用SSL連接到服務(wù)器
pg_ssl_verify 如果啟用了pg_ssl尤泽,則切換服務(wù)器證書(shū)驗(yàn)證」媪常看到lua_ssl_trusted_certificate設(shè)置坯约。


Cassandra settings

名稱(chēng) 描述
cassandra_contact_points 指向您的Cassandra集群的鏈接點(diǎn)列表,使用逗號(hào)分割莫鸭。
cassandra_port 你的節(jié)點(diǎn)監(jiān)聽(tīng)的端口
cassandra_keyspace 在集群中使用的關(guān)鍵空間闹丐。如果不存在,就會(huì)被創(chuàng)建被因。
cassandra_consistency 在閱讀/寫(xiě)作時(shí)使用一致性設(shè)置卿拴。
cassandra_timeout 讀取/寫(xiě)入 超時(shí)(ms)時(shí)間。
cassandra_ssl 啟用SSL連接到節(jié)點(diǎn)梨与。
cassandra_ssl_verify 如果啟用了cassandra_ssl堕花,則切換服務(wù)器證書(shū)驗(yàn)證。查看 lua_ssl_trusted_certificate 設(shè)置蛋欣。
cassandra_username 使用PasswordAuthenticator時(shí)的用戶(hù)名航徙。
cassandra_password 在使用PasswordAuthenticator時(shí)的密碼。
cassandra_consistency 在讀取/寫(xiě)入Cassandra集群時(shí)使用一致性設(shè)置陷虎。
cassandra_lb_policy 當(dāng)在您的Cassandra集群中分布查詢(xún)時(shí)使用負(fù)載平衡策略到踏。可設(shè)置為 RoundRobinDCAwareRoundRobin 尚猿。如果您使用的是多數(shù)據(jù)中心集群窝稿,則后者更好。如果是這樣凿掂,還要設(shè)置 cassandra_local_datacenter伴榔。
cassandra_local_datacenter 在使用DCAwareRoundRobin政策時(shí)纹蝴,必須指定本地(最近)的集群名稱(chēng)到這個(gè)Kong節(jié)點(diǎn)。
cassandra_repl_strategy 如果第一次創(chuàng)建密鑰空間踪少,請(qǐng)指定復(fù)制策略塘安。
cassandra_repl_factor SimpleStrategy指定一個(gè)復(fù)制因子。
cassandra_data_centers NetworkTopologyStrategy(網(wǎng)絡(luò)拓?fù)洳呗?指定數(shù)據(jù)中心援奢。
cassandra_schema_consensus_timeout Cassandra節(jié)點(diǎn)之間同步scheme的超時(shí)( ms)時(shí)間兼犯。這個(gè)值只在數(shù)據(jù)遷移期間使用。


數(shù)據(jù)緩存屬性

為了避免與數(shù)據(jù)存儲(chǔ)不必要的通信集漾,Kong可配置緩存實(shí)體(比如api切黔、消費(fèi)者、憑證等等)的間隔時(shí)間具篇。如果緩存實(shí)體被更新纬霞,它也會(huì)處理也會(huì)失效。

本節(jié)介紹關(guān)于配置Kong此類(lèi)配置實(shí)體緩存驱显。


db_update_frequency

頻率(以秒為單位)诗芜,用于檢查帶有數(shù)據(jù)存儲(chǔ)的更新實(shí)體。當(dāng)節(jié)點(diǎn)通過(guò)Admin API創(chuàng)建秒紧、更新或刪除實(shí)體時(shí)绢陌,其他節(jié)點(diǎn)需要等待下一次輪詢(xún)(由這個(gè)值配置),以清除舊的緩存實(shí)體并開(kāi)始使用新的緩存熔恢。

默認(rèn)值:5 seconds


db_update_propagation

在數(shù)據(jù)存儲(chǔ)中為實(shí)體所花費(fèi)的時(shí)間(以秒為單位)被傳播到另一個(gè)數(shù)據(jù)中心的副本節(jié)點(diǎn)脐湾。當(dāng)在分布式環(huán)境中,比如多數(shù)據(jù)中心Cassandra集群時(shí)叙淌,這個(gè)值應(yīng)該是Cassandra將一行傳播到其他數(shù)據(jù)中心的最大秒數(shù)秤掌。當(dāng)設(shè)置了該值,該屬性將增加Kong傳播實(shí)體變更所花費(fèi)的時(shí)間鹰霍。單數(shù)據(jù)中心設(shè)置或PostgreSQL服務(wù)器不應(yīng)該受到這樣的延遲闻鉴,并且這個(gè)值可以安全地設(shè)置為0。

默認(rèn)值: 0 seconds


db_cache_ttl

該節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)實(shí)體緩存的生存時(shí)間(以秒為單位)茂洒。數(shù)據(jù)庫(kù)遺漏(沒(méi)有實(shí)體)也會(huì)根據(jù)這個(gè)設(shè)置進(jìn)行緩存孟岛。如果設(shè)置為0,那么這種緩存的實(shí)體/遺漏永遠(yuǎn)不會(huì)過(guò)期督勺。

默認(rèn)值:3600 seconds(1小時(shí))


DNS解析屬性

Kong將把主機(jī)名解析為 SRVA 記錄(按照該順序渠羞,CNAME 記錄將在此過(guò)程中被取消)。如果一個(gè)名稱(chēng)被解析為SRV記錄智哀,它會(huì)通過(guò)從DNS服務(wù)器接收到端口以覆蓋給定的端口號(hào)次询。

DNS選項(xiàng)SEARCHNDOTS(來(lái)自/etc/resolv.conf 文件)將被用于將短名稱(chēng)擴(kuò)展到完全限定的名稱(chēng)。因此瓷叫,它將首先嘗試完整 SEARCH SRV類(lèi)型的列表屯吊,如果失敗送巡,它將會(huì)嘗試SEARCH A記錄列表,等等盒卸。

ttl的持續(xù)時(shí)間內(nèi)骗爆,內(nèi)部DNS解析器將對(duì)DNS記錄的條目上做負(fù)載均衡請(qǐng)求。對(duì)于SRV記錄蔽介,可以設(shè)置權(quán)重淮腾,但是它只會(huì)使用記錄中最低優(yōu)先級(jí)字段條目。


dns_resolver

設(shè)置域名服務(wù)器列表屉佳,使用逗號(hào)分隔。格式如: ip[:port] 洲押。如果沒(méi)有制定域名服務(wù)器武花,name就使用本地 resolv.conf 文件。端口默認(rèn)為53杈帐√寤可以使用IPv4和IPv6地址。

默認(rèn)值: none


dns_hostsfile

要使用的主機(jī)文件挑童。這個(gè)文件只被讀取一次累铅,然后會(huì)存儲(chǔ)在內(nèi)存中。要在修改后想再次讀取該文件站叼,必須重新加載Kong娃兽。

默認(rèn)值:/etc/hosts


dns_order

解決不同記錄類(lèi)型的順序。LAST類(lèi)型指的是最后一次成功的查找的類(lèi)型(對(duì)于指定的名稱(chēng))尽楔。格式是一個(gè)(大小寫(xiě)不敏感)逗號(hào)分隔的列表投储。

默認(rèn)值: LAST,SRV,A,CNAME


dns_stale_ttl

定義在緩存中保存DNS記錄的TTL時(shí)間。當(dāng)新的DNS記錄在后臺(tái)獲取時(shí)阔馋,這個(gè)值將被使用玛荞。陳舊的數(shù)據(jù)將從記錄的過(guò)期時(shí)間使用,直到刷新查詢(xún)完成呕寝,或者dns_stale_ttl的秒數(shù)已經(jīng)過(guò)去勋眯。

默認(rèn)值:4


dns_not_found_ttl

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

默認(rèn)值:30


dns_error_ttl

錯(cuò)誤響應(yīng)的TTL時(shí)間(以秒為單位)

默認(rèn)值:1


dns_no_sync

如果啟用了,那么在cache-miss時(shí)下梢,每個(gè)請(qǐng)求都會(huì)觸發(fā)自己的dns查詢(xún)客蹋。當(dāng)為相同的名稱(chēng)/類(lèi)型禁用多個(gè)請(qǐng)求時(shí),將同步到單個(gè)查詢(xún)怔球。

默認(rèn)值: off


開(kāi)發(fā)與其他屬性

從lua-nginx-module繼承的附加設(shè)置嚼酝,可以更靈活和更高級(jí)的使用。
有關(guān)更多信息竟坛,請(qǐng)參見(jiàn)lua-nginx-module文檔:https://github.com/openresty/lua-nginx-module


lua_ssl_trusted_certificate

在PEM格式的Lua cosockets的證書(shū)權(quán)威文件的絕對(duì)路徑闽巩。該證書(shū)將用于驗(yàn)證Kong的數(shù)據(jù)庫(kù)連接钧舌,當(dāng)啟用pg_ssl_verifycassandra_ssl_verify時(shí)。

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

默認(rèn)值: none


lua_ssl_verify_depth

在Lua cosockets使用的服務(wù)器證書(shū)鏈中設(shè)置驗(yàn)證深度涎跨,通過(guò)lua_ssl_trusted_certificate 設(shè)置洼冻。

這包括為Kong的數(shù)據(jù)庫(kù)連接配置的證書(shū)。

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

默認(rèn)值: 1


lua_package_path

設(shè)置Lua模塊搜索路徑(LUA_PATH)隅很。在默認(rèn)搜索路徑中撞牢,開(kāi)發(fā)或使用不存儲(chǔ)的自定義插件時(shí)非常有用。

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

默認(rèn)值: none


lua_package_cpath

設(shè)置Lua C模塊搜索路徑(LUA_CPATH)叔营。

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

默認(rèn)值: none


lua_socket_pool_size

指定與每個(gè)遠(yuǎn)程服務(wù)器相關(guān)聯(lián)的每個(gè)cosocket連接池的大小限制屋彪。

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

默認(rèn)值:30

穿梭機(jī):開(kāi)源API網(wǎng)關(guān)系統(tǒng)(Kong教程)入門(mén)到精通

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绒尊,隨后出現(xiàn)的幾起案子畜挥,更是在濱河造成了極大的恐慌,老刑警劉巖婴谱,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蟹但,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谭羔,警方通過(guò)查閱死者的電腦和手機(jī)华糖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瘟裸,“玉大人客叉,你說(shuō)我怎么就攤上這事【懊瑁” “怎么了十办?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)超棺。 經(jīng)常有香客問(wèn)我向族,道長(zhǎng),這世上最難降的妖魔是什么棠绘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任件相,我火速辦了婚禮,結(jié)果婚禮上氧苍,老公的妹妹穿的比我還像新娘夜矗。我一直安慰自己,他們只是感情好让虐,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布紊撕。 她就那樣靜靜地躺著,像睡著了一般赡突。 火紅的嫁衣襯著肌膚如雪对扶。 梳的紋絲不亂的頭發(fā)上区赵,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音浪南,去河邊找鬼笼才。 笑死,一個(gè)胖子當(dāng)著我的面吹牛络凿,可吹牛的內(nèi)容都是我干的骡送。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼絮记,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼摔踱!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起怨愤,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤昌渤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后憔四,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡般眉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年了赵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甸赃。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柿汛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埠对,到底是詐尸還是另有隱情络断,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布项玛,位于F島的核電站貌笨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏襟沮。R本人自食惡果不足惜锥惋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望开伏。 院中可真熱鬧膀跌,春花似錦、人聲如沸固灵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)巫玻。三九已至丛忆,卻和暖如春祠汇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蘸际。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工座哩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粮彤。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓根穷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親导坟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屿良,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容