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

原文地址:https://www.cnblogs.com/breg/p/13204582.html