ngx_stream_limit_conn_module 模組
範例設定 指令 limit_conn limit_conn_dry_run limit_conn_log_level limit_conn_zone 內嵌變數 |
ngx_stream_limit_conn_module
模組 (1.9.3) 用於限制每個已定義的鍵值的連線數量,特別是來自單一 IP 位址的連線數量。
範例設定
stream { limit_conn_zone $binary_remote_addr zone=addr:10m; ... server { ... limit_conn addr 1; limit_conn_log_level error; } }
指令
語法 |
limit_conn |
---|---|
預設 | — |
上下文 |
stream , server |
設定共享記憶體區域和給定鍵值的最大允許連線數量。當超過此限制時,伺服器將關閉連線。例如,以下指令
limit_conn_zone $binary_remote_addr zone=addr:10m; server { ... limit_conn addr 1; }
允許每個 IP 位址一次只能有一個連線。
當指定多個 limit_conn
指令時,任何已設定的限制都將適用。
這些指令會從先前的設定層級繼承,前提是目前的層級沒有定義 limit_conn
指令。
語法 |
limit_conn_dry_run |
---|---|
預設 |
limit_conn_dry_run off; |
上下文 |
stream , server |
此指令出現在 1.17.6 版本中。
啟用試運行模式。在此模式下,連線數量不受限制,但是,在共享記憶體區域中,超額連線的數量會照常計算。
語法 |
limit_conn_log_level |
---|---|
預設 |
limit_conn_log_level error; |
上下文 |
stream , server |
設定當伺服器限制連線數量時所需的記錄層級。
語法 |
limit_conn_zone |
---|---|
預設 | — |
上下文 |
stream |
設定共享記憶體區域的參數,該區域將保存各種鍵值的狀態。特別是,狀態包括目前的連線數量。key
可以包含文字、變數及其組合 (1.11.2)。具有空鍵值的連線不會被計算在內。使用範例
limit_conn_zone $binary_remote_addr zone=addr:10m;
在此,鍵是由 $binary_remote_addr
變數設定的用戶端 IP 位址。$binary_remote_addr
的大小對於 IPv4 位址為 4 個位元組,對於 IPv6 位址為 16 個位元組。儲存的狀態在 32 位元平台上始終佔用 32 或 64 個位元組,在 64 位元平台上佔用 64 個位元組。一個兆位元組的區域可以保存約 32,000 個 32 位元組的狀態或約 16,000 個 64 位元組的狀態。如果區域儲存空間耗盡,伺服器將關閉連線。
此外,作為我們商業訂閱的一部分,自 1.17.7 起,可以使用API取得或重設每個此類共享記憶體區域的狀態資訊。
內嵌變數
$limit_conn_status
- 保留限制連線數量的結果 (1.17.6):
PASSED
、REJECTED
或REJECTED_DRY_RUN