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秒,检测到变更立即重建路由

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