OpenResty Edge 的配置文件

OpenResty Edge Admin 的配置文件

文件路径:/usr/local/oredge-admin/conf/config.ini

修改完配置后,你需要执行以下命令来重启服务,以使新配置生效:

sudo systemctl start upgrade-oredge-admin

postgresql

[postgresql]
host = 127.0.0.1
port = 5432
max_idle_timeout = 60
pool_size = 100
backlog = 256
database = "or_edge_admin"
user = "USER"
password = 'PASSWORD'
ssl = false
ssl_verify = false
ssl_required = false
endpoints="postgresql://127.0.0.1:5432,127.0.0.1:5433/or_edge_admin?user=or_edge_admin&password=PASSWORD&pool_size=10"
check_primary_interval = 5

这个配置块用于配置 OpenResty Edge Admin 连接的数据库。

  • host:PostgreSQL 数据库服务器的主机名或 IP 地址,默认为本机 127.0.0.1,即默认认为数据库与 OpenResty Edge Admin 部署在同一台机器上。
  • port:数据库的服务端口,默认为 5432
  • max_idle_timeout:空闲长连接的保持时间,默认值为 60 秒。
  • pool_size:连接数据库的连接池大小。
  • backlog:指定等待连接的最大队列长度。当连接池中的所有连接都被占用时,新的连接请求将进入等待队列。
  • database:指定要连接的数据库名称。
  • user:访问数据库时使用的用户名。
  • password:访问数据库时使用的密码。
  • ssl:指定是否使用 SSL 加密连接。
  • ssl_verify:指定是否验证 SSL 证书。
  • ssl_required:指定是否强制使用 SSL 连接。
  • endpoints:指定连接的数据库端点列表,同时只能存在一个主数据库,当存在多个时,列表中第一个主库将被使用。此配置主要用于数据库的故障转移。格式为 “postgresql://host:port/database?args”。示例:"postgresql://127.0.0.1:5432,127.0.0.1:5433/or_edge_admin?user=or_edge_admin&password=PASSWORD&pool_size=10",表示连接两个数据库端点,分别为 “127.0.0.1:5432” 和 “127.0.0.1:5433”,数据库名称为 “or_edge_admin”,并指定了连接参数,如用户名、密码、连接池大小和空闲超时时间。
  • check_primary_interval:指定检查 endpoints 列表中主从数据库的时间间隔,默认为 5 秒。

需要注意的是,在 endpoints 参数中,除了 max_idle_timeoutcheck_primary_interval 配置项不能使用外,其他配置项都可以作为参数传递。此外,endpoints 参数中的 password 参数值在首次启动后将会被替换为加密后的内容,请务必牢记您的原始密码。当 endpoints 中的参数或参数值有如 &= 等特殊字符时,需要进行 URL 编码,如 & 编码为 %40= 编码为 %3D

clone_admin

[clone_admin]
host = "192.168.1.2"
port = 12345
role = "normal"

这个配置块用于配置另一个 OpenResty Edge Admin。

  • host 另一个 OpenResty Edge Admin 的地址
  • port 另一个 OpenResty Edge Admin 的端口
  • role 另一个 OpenResty Edge Admin 的角色类型。取值有:normal,main,staging。
    • normal 是缺省值,表示通用的 OpenResty Edge Admin。
    • main 表示主 OpenResty Edge Admin。
    • staging 表示灰度 OpenResty Edge Admin。

log_server

[log_server]
endpoints = "https://127.0.0.1:12346"

# The following configuration is used in versions prior to 23.12.1.
host = 127.0.0.1
mbus_port = 12346

此配置块用于指定 OpenResty Edge Log Server 的信息。

  • endpoints 选项用于设定 OpenResty Edge Log Server 实例的连接地址。如果你有多个实例,你可以使用逗号将它们分隔开,比如 endpoints = "https://127.0.0.1:12346, https://127.0.0.2:12346"。这是在 23.12.1 版本中新加入的配置,它替代了旧版本的 hostmbus_port 配置项。
  • hostmbus_port、配置项分别指定了 OpenResty Edge Log Server 的主机名和 RPC 通讯端口。在 23.12.1 以及更新的版本中推荐使用 endpoints

log_server_heartbeat

[log_server_heartbeat]
enable = true
interval = 1
down_threshold = 1
up_threshold = 1

此配置块用于对 OpenResty Edge Log Server 进行健康检查。

  • enable 是否启用健康检查。
  • interval 心跳间隔。
  • down_threshold 是不健康阈值,失败请求达到此阈值,则视为不健康。
  • up_threshold 是健康阈值,成功请求达到此阈值,则视为健康。

acme

[acme]
acme_skip_precheck = false
acme_skip_duplicate_check = false

此配置块用于配置使用第三方证书提供商时的行为。

  • acme_skip_precheck 用于证书签发时的检查,如“域名的 DNS 记录是否指向 OpenResty Edge”。
  • 设置 acme_skip_duplicate_check = true 后,系统将允许为同一个域名配置多个 ACME 证书。

config

[config]
max_history = 5000
max_full_sync_batch = 500
max_full_sync_qps = 5
max_delta_sync_qps = 500
admin_api_port = 8088
admin_api_scheme = http
max_history = 5000
gc_history_threshold = 1000
gc_ts_threshold = 259200
clean_ts_threshold = 604800
clean_sync_delta_interval = 86400

此配置块用于指定 OpenResty Edge Admin 的服务端口、配置同步等配置。

  • max_full_sync_batch:全量同步时,每次同步的配置数量。
  • max_full_sync_qps:全量同步的限速配置。默认值是 5。
  • max_delta_sync_qps:增量同步的限速配置。默认值是 500.
  • admin_api_port:OpenResty Edge Admin 的服务端口。
  • admin_api_scheme:OpenResty Edge Admin 的服务类型。
  • max_history:每个配置数据库中,增量同步数据的版本数量超过 max_history 的部分将被清理,默认是 5000 个。
  • gc_history_threshold:所有配置数据库中,增量同步数据的版本数量超过 gc_history_threshold,并且时间在 gc_ts_threshold 之前的,将被清理,默认是 1000 个。
  • gc_ts_threshold:所有配置数据库中,增量同步数据的版本数量超过 gc_history_threshold,并且时间在 gc_ts_threshold 之前的,将被清理。默认是 259200 秒,也就是 3 天。
  • clean_ts_threshold:所有配置数据库中,增量同步数据的生成时间在 clean_ts_threshold 之前的,将被清理,默认是 604800 秒,也就是 7 天。
  • clean_sync_delta_interval:进行清理操作的时间间隔,默认是 86400 秒,也就是 1 天。

static_file

[static_file]
max_download_qps = 5
full_sync_max_batch_size = 50
delta_sync_max_batch_size = 50
delta_sync_max_diff_version = 100
temp_file_root = "/tmp"
max_single_file_size = 10485760
max_archive_dir_size = 104857600
list_delta_limit = 5
  • max_download_qps 是 Node 下载静态文件的 QPS,默认值是 5。
  • full_sync_max_batch_size 是全量同步时的批次大小,默认值是 50。
  • delta_sync_max_batch_size 是增量同步时的批次大小,默认值是 50。
  • delta_sync_max_diff_version 超过此阈值时,使用全量同步,否则使用增量同步。
  • temp_file_root 用于指定静态文件的临时目录。上传文件到 OpenResty Edge 中时,会先存储到此临时目录中。
  • max_single_file_size 单个文件的最大大小,超过此大小的文件将无法上传。
  • max_archive_dir_size 批量上传文件时的压缩文件最大大小,超过此大小的文件将无法上传。
  • list_delta_limit 是 Node 获取变更的文件列表的 QPS,默认值是 5。

license

[license]
http_proxy = "http://127.0.0.1:2000"
authorization = "UESRNAME:PASSWORD"

此配置块用于对 License 同步进行配置。

  • http_proxy 是使用代理时的 URL。
  • authorization 是代理的鉴权信息。

waf_rules

[waf_rules]
temp_file_root = "/tmp"

此配置块是与 WAF 规则相关的配置。

  • temp_file_root 是上传 WAF 规则时,临时进行缓存的目录。

rotate_log

[rotate_log]
interval = 86400
max_kept_file = 128

此配置块用于配置日志轮转。

  • interval 是轮转间隔。
  • max_kept_file 是最大保持的日志文件数量。

dns_healthcheck

[dns_healthcheck]
interval = 10

此配置块用于配置 DNS 健康检查。

  • interval 用于设置 DNS 健康检查的间隔,单位秒,默认值是 10。

dns

[dns]
client_limiter_rate = 50
client_limiter_burst = 100

此配置块用于配置 DNS 相关配置。

  • client_limiter_rateclient_limiter_burst 用于控制发送 DNS 查询请求的速率。例如当使用域名作为 Kubernetes 集群的 Host 时,访问 Kubernetes 集群前会进行 DNS 解析。这两个配置项在 23.6.1-3123.12.16-1 及之后版本引入。

log_server_health_check

[log_server_health_check]
request_interval = 1
healthy_threshold = 2
unhealthy_threshold = 3
connect_timeout = 10

此配置块用于设置 Log Server 的健康检查参数。在部署多个 Log Server 实例的场景下,健康检查机制可以快速识别并切换到可用实例,从而提高整体服务质量。

各参数说明如下:

  • request_interval: 定义健康检查请求的发送间隔,单位为秒。默认值为 1 秒。

  • healthy_threshold: 健康阈值,默认值为 2。当连续成功的健康检查次数达到此阈值时,系统会将该 Log Server 实例标记为健康状态。

  • unhealthy_threshold: 不健康阈值,默认值为 3。当连续失败的健康检查次数达到此阈值时,系统会将该 Log Server 实例标记为不健康状态。

  • connect_timeout: 连接超时时间,单位为秒,默认值为 10 秒。这是系统连接 Log Server 的最长时间。如果在此时间内未连接成功,则当前请求被视为失败。

通过适当调整这些参数,您可以根据具体的网络环境和业务需求,优化健康检查的灵敏度和准确性,从而确保日志服务的高可用性。

OpenResty Edge Node 的配置文件

文件路径:/usr/local/oredge-node/conf/config.ini

修改完配置后,你需要执行以下命令来重启服务,以使新配置生效:

sudo systemctl start upgrade-oredge-node

admin

[admin]
host = 127.0.0.1
port = 12345
ssl_host = ADMIN_HOST_COM
protocol = "wss"
host2 = 127.0.0.1
port2 = 12345
protocol2 = "https"

此配置块用于配置 OpenResty Edge Admin 的信息,OpenResty Edge Node 会根据这些信息去连接对应的 OpenResty Edge Admin。

  • host 是 OpenResty Edge Admin 的地址。
  • port 是 OpenResty Edge Admin 的服务端口。
  • ssl_host 是 OpenResty Edge Admin 的域名,SSL 握手时,将使用此域名。
  • protocol 是连接 OpenResty Edge Admin 所使用的协议,可以取值 wss 和 https。

如果有第二个 OpenResty Edge Admin,则可以配置 host2、port2、protocol2 来连接。

log_server

[log_server]
endpoints = "https://127.0.0.1:12346"

# Optional
mbus_use_host_as_sni = true
mbus_sni = "logserver.test.com"

# The following configuration is used in versions prior to 23.12.1.
host = "127.0.0.1"
port = 12346
protocol = "wss"

这个配置块用于配置 OpenResty Edge Node 连接的 OpenResty Edge Log Server 信息。

  • endpoints 选项用于设定 OpenResty Edge Log Server 实例的连接地址。如果你有多个实例需要配置,你可以使用逗号将它们分隔开,比如 endpoints = "https://127.0.0.1:12346, https://127.0.0.2:12346"。这是在 23.12.1 版本中新加入的配置,它替代了旧版本的 hostportprotocol 配置项。
  • hostportprotocol 配置项分别指定了 OpenResty Edge Log Server 实例的主机名、端口和协议。在 23.12.1 以及更新的版本中推荐使用 endpoints
  • mbus_use_host_as_sni 选项标明了是否应将 host 作为 SSL 握手时的 SNI(Server Name Indication)使用。
  • mbus_sni 配置项与 mbus_use_host_as_sni 的功能类似。不过,如果你选择使用 mbus_sni,你可以直接指定 SSL 握手时的 SNI。

healthcheck

[healthcheck]
update_always_check_ups_interval = 180
run_interval = 1
check_interval = 60
pool_size = 512

这个配置块用于配置上游健康检查。

  • update_always_check_ups_interval 是更新打开了 always check 标记的上游的间隔。
  • run_interval 是执行健康检查的间隔。
  • check_interval 是检查健康检查结果的间隔,如果结果过期,将在后续继续进行健康检查。
  • pool_size 是连接对端时使用的连接池大小。

config

[config]
lmdb = /usr/local/oredge-node/data/config.mdb
lmdb_size = 8192m
disable_core_file_cleanup = false

这个配置块是 OpenResty Edge Node 的一些通用配置。

  • lmdb 是 OpenResty Edge Node 本地数据库的文件路径。
  • lmdb_size 是数据库文件的大小。如果你想要修改,请参考此文档:LMDB 大小变更及备份恢复 #
  • disable_core_file_cleanup 用于启用删除 OpenResty Edge Node 产生的 core 文件。

dns

[dns]
enable_access_log = true
enable_limiter = true
enable_cache = true
cache_ttl = 1
client_limiter_rate = 50
client_limiter_burst = 100

此配置块是 OpenResty Edge Node 的 DNS 相关的配置。

  • enable_access_log 用于控制是否启用访问日志。
  • enable_limiter 用于控制是否开启限速。
  • enable_cache 用于控制是否开启缓存,而 cache_ttl 是缓存的有效期。
  • client_limiter_rateclient_limiter_burst 用于控制发送 DNS 查询请求的速率。例如,当使用域名作为上游时,访问上游前会进行 DNS 解析。这两个配置项在 23.6.1-3123.12.16-1 及之后版本引入。

access_log

[access_log]
max_log_count = 4096

此配置块用于配置 OpenResty Edge Node 的访问日志。

  • max_log_count 用于控制可以动态打开的访问日志数量。

OpenResty Edge Log Server 的配置文件

文件路径:/usr/local/oredge-log-server/conf/config.ini

修改完配置后,你需要执行以下命令来重启服务,以使新配置生效:

sudo systemctl start upgrade-oredge-log-server

postgresql

[postgresql]
host = 127.0.0.1
port = 5432
max_idle_timeout = 60
pool_size = 50
database = "or_edge_log_server"
user = "USERNAME"
password = 'PASSWORD'
backlog = 1024

此配置块用于配置 OpenResty Edge Log Server 所要使用的数据库信息。

stash

[stash]
errlog_size = 100
events_size = 1024
health_check_size = 512
http_metric_size = 1024
sys_monitor_size = 100

此配置块用于配置错误日志、事件等记录的缓冲区大小,此缓冲区用于写数据库前,避免频繁写数据库。

  • errlog_size 用于错误日志记录。
  • events_size 用于事件通知记录。
  • health_check_size 用于健康检查记录。
  • http_metric_size 用于上游指标和 HTTP 指标。
  • sys_monitor_size 用于 OpenResty Edge Node 系统监视器记录。

alarm

[alarm]
disable_waf_alarm = true

此配置块用于配置告警模块。

  • disable_waf_alarm 用于禁用 WAF 的事件告警,WAF 事件可能会很多,导致大量数据传送到 OpenResty Edge Admin,并写入 OpenResty Edge Admin 的数据库,因此可以通过此配置项进行禁用。

OpenResty PostgreSQL 的配置文件

配置文件路径:/var/postgres12/data/postgresql.conf 访问控制文件路径:/var/postgres12/data/pg_hba.conf

当 OpenRsty Edge Admin 和其使用的数据库在同一台机器上;OpenRsty Edge Log Server 和其使用的数据库在同一台机器上 时,通常不需要对数据库进行额外的配置。 当 OpenRsty Edge Admin 和其使用的数据库部署于不同的机器上时,则需要进行以下配置:

/var/postgres12/data/postgresql.conf 中的以下配置:

# listen_addresses = 'localhost'

改为

listen_addresses = '*'

接下来修改 /var/postgres12/data/pg_hba.conf,以允许 OpenResty Edge Admin 能访问该数据库。

host    all     all      10.0.0.1/32             md5

10.0.0.1/32 表示允许访问数据库的 IP 地址范围。

都修改完成后,重启数据库使新配置生效:

sudo systemctl restart openresty-postgresql12