服务器设置和教程 · 8 10 月, 2024

Nginx 技巧:限制每個 IP 的並發連接

Nginx 技巧:限制每個 IP 的並發連接

Nginx 是一款高效能的網頁伺服器,廣泛應用於各種網站和應用程式中。由於其優越的性能和靈活的配置選項,Nginx 成為了許多網站的首選伺服器。然而,隨著網站流量的增加,管理並發連接變得越來越重要。本文將探討如何在 Nginx 中限制每個 IP 的並發連接,以提高網站的穩定性和安全性。

為什麼需要限制並發連接?

限制每個 IP 的並發連接有助於防止某些用戶過度消耗伺服器資源,從而影響其他用戶的體驗。這在以下情況中特別重要:

  • 防止 DDoS 攻擊:限制並發連接可以減少來自單一 IP 的流量,降低攻擊的影響。
  • 保護伺服器資源:避免某些用戶或機器人過度請求,確保伺服器資源的公平分配。
  • 提升網站性能:通過控制連接數量,減少伺服器的負擔,從而提高整體性能。

如何在 Nginx 中限制每個 IP 的並發連接

在 Nginx 中,可以使用 `limit_conn` 模塊來限制每個 IP 的並發連接數。以下是具體的配置步驟:

1. 確認 Nginx 已安裝 limit_conn 模塊

首先,確保你的 Nginx 安裝中包含 `limit_conn` 模塊。可以通過以下命令檢查:

nginx -V

在輸出的配置參數中,應該能看到 `–with-http_limit_conn_module`。

2. 編輯 Nginx 配置文件

接下來,打開 Nginx 的配置文件,通常位於 `/etc/nginx/nginx.conf` 或 `/etc/nginx/conf.d/default.conf`。在 `http` 區塊中添加以下配置:

http {
    ...
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    ...
}

這段配置創建了一個名為 `addr` 的共享內存區域,用於存儲每個 IP 的連接數據。

3. 設定每個 IP 的最大連接數

在 `server` 或 `location` 區塊中,添加以下配置來限制每個 IP 的並發連接數:

server {
    ...
    limit_conn addr 10;  # 限制每個 IP 最多 10 個並發連接
    ...
}

這樣配置後,每個 IP 地址最多只能有 10 個並發連接。如果超過這個數量,Nginx 將返回 503 錯誤。

4. 測試配置並重啟 Nginx

完成配置後,使用以下命令測試 Nginx 配置是否正確:

nginx -t

如果沒有錯誤,則可以重啟 Nginx 使配置生效:

systemctl restart nginx

結論

通過限制每個 IP 的並發連接,Nginx 能夠有效地管理伺服器資源,提升網站的穩定性和安全性。這對於高流量網站尤為重要,能夠防止單一用戶或攻擊者過度消耗資源。希望本文提供的技巧能幫助你更好地配置 Nginx,提升網站性能。

如需了解更多有關 香港 VPS 和伺服器管理的資訊,請訪問我們的網站。