一区二区三区欧美日韩-一区二区三区欧美-一区二区三区免费在线视频-一区二区三区免费在线观看-久久精品店-久久精品第一页

歡迎您光臨深圳塔燈網絡科技有限公司!
電話圖標 余先生:13699882642

網站百科

為您解碼網站建設的點點滴滴

配置詳解 - 玩轉Kong網關

發表日期:2018-08 文章編輯:小燈 瀏覽次數:2555

配置加載

Kong的默認配置在 /etc/kong/kong.conf.default 。如果你通過一個官方的安裝包來安裝Kong。您可以復制下面的文件,開始配置Kong:

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

如果你的配置中的所有值都被考慮,那么Kong將使用默認配置運行。在開始時,Kong可能會查找的幾個缺省配置文件位置如下:

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

您可以通過在CLI中使用-c / -conf參數自定義配置文件路徑來覆蓋此默認配置:

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

配置格式很簡單:注釋由字符 # 定義。布爾值可以被指定為 on/off 或者true/false

驗證您的配置

您可以使用check命令來驗證設置的完整性:

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

這個命令,將檢測您當前設置的環境變量,并且在您的設置錯誤時報錯。

此外,您還可以在調試模式下使用CLI,以便更深入地了解正在啟動的屬性:

$ 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" [...] 

環境變量

當從配置文件中加載屬性時,Kong也會查找相同名稱的環境變量。這允許您通過環境變量完全配置Kong。

所有環境變量的前綴 KONG_ ,大寫并帶有與設置相同的名稱將覆蓋默認配置。
例如:

log_level = debug # in kong.conf 

會被如下設置覆蓋:

$ export KONG_LOG_LEVEL=error 

定制Nginx配置和嵌入Kong

調整Nginx配置是設置您的Kong實例的一個重要部分,因為它允許您優化其性能,或者將Kong嵌入到已經運行的OpenResty實例中。

  • 自定義Nginx配置

Kong可以用 --nginx-conf 的參數啟動,重新加載和重新啟動,該參數必須指定Nginx配置模板。這樣的模板使用了Penlight模板引擎,它是使用給定的Kong配置編譯的,然后在開始Nginx之前被保存到您的Kong前綴目錄中。

默認模板可以在https://github.com/Kong/kong/tree/master/kong/templates
找到。它分為兩個Nginx配置文件:nginx.luanginx_kong.lua。前者是運行Kong的最低的配置要求,其會包括后者。當Kong開始運行時,在開始Nginx之前,它將這兩個文件復制到前綴目錄中,看起來是這樣的:

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

如果您希望在Nginx配置中包含其他服務模塊,或者您必須調整不受Kong配置影響的全局設置,這里有一個建議:

# --------------------- # custom_nginx.template # ---------------------worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.conf daemon ${{NGINX_DAEMON}}; # can be set by kong.confpid pids/nginx.pid;# this setting is 強制的 error_log logs/error.log ${{LOG_LEVEL}}; # can be set by kong.confevents { 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 } } } 

你可以這樣啟動Kong:

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

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

# --------------------- # custom_nginx.template # ---------------------worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.conf daemon ${{NGINX_DAEMON}}; # can be set by kong.confpid pids/nginx.pid;# this setting is mandatory error_log logs/error.log ${{LOG_LEVEL}}; # can be set by kong.confevents {}http { resolver ${{DNS_RESOLVER}} ipv6=off; charset UTF-8; error_log logs/error.log ${{LOG_LEVEL}}; access_log logs/access.log;... # etc } 
  • 在OpenResty里嵌入Kong

如果您正在運行您自己的OpenResty服務器,您也可以通過使用include指令(類似于上一節的示例)來輕松地嵌入Kong。如果您有一個有效的頂級NGINX配置,那么就可以簡單的引入Kong的配置:

# my_nginx.confhttp { include 'nginx-kong.conf'; } 

你可以像這樣開始你的實例:

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

這樣Kong就會運行在你的實例中。(Kong的配置在nginx-kong.conf里)

  • Kong為網站和你的api提供服務

API提供者的一個常見用例是讓Kong在代理端口上同時服務于一個網站和API本身——在生產中有80443。例如:https://my-api.com(網站)和https://my-api.com/api/v1(API)。

為了實現這一點,我們不能簡單地聲明一個新的虛擬服務模塊,就像我們在上一節中所做的那樣。一個好的解決方案是使用一個定制的Nginx配置模板,該模板可以內聯nginx_kong.lua。添加一個新的location塊,與Kong代理location塊一起服務于網站:

# --------------------- # custom_nginx.template # ---------------------worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.conf daemon ${{NGINX_DAEMON}}; # can be set by kong.confpid 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進行添加修改。

常規屬性

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

穿梭機:開源API網關系統(Kong教程)入門到精通


本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.junxiaosheng.cn/20450.html
相關開發語言
 八年  行業經驗

多一份參考,總有益處

聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

咨詢相關問題或預約面談,可以通過以下方式與我們聯系

業務熱線:余經理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

主站蜘蛛池模板: 国产精品视频大全| bbw极度另类孕妇| 欧美18精品久久久无码午夜福利| 俄罗斯XXXXXL18| 欧美精品做人一级爱免费| 国产精品成人观看视频免费| 18动漫在线观看| 狼群影院视频在线观看WWW| 一久久| 秋霞电影午夜伦午夜| porono日本xxx| 色屁屁影院| 俄罗斯兽交XXXXX在线| 在线不卡日本v二区| 雪恋电影完整版免费观看| 妺妺窝人体色WWW偷窥女厕| 扒开老师大腿猛进AAA片邪恶| 色戒2小时38分在线观看| 国产国拍亚洲精品永久软件| 717影院理论午夜伦不卡久久| 亚洲阿v天堂在线2017| 久久国产精品萌白酱免费| 1788vv视频| 亚洲AV香蕉一区区二区三区蜜桃| 青青伊人国产| 免费国产成人高清在线看软件| caoporn 超碰免费视频| 孕妇bbwbbwbbwbbw超清| 亚洲国产精品线在线观看| 久久无码人妻AV精品一区| 啊灬啊别停灬用力啊老师| 曰本女人牲交视频免费| 日本特黄网站| 极品少妇高潮XXXXX| 国产人A片在线乱码视频| 在教室伦流澡到高潮H女攻视频| 亚洲AV无码一区二区色情蜜芽 | 欧洲电影巜肉欲丛林| 国产69精品久久久久乱码韩国| free高跟丝袜秘书hd| 99麻豆精品国产人妻无码|