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