我們使用nginx和應用服務器作爲後端。Nginx:限制每個IP到後端的同時連接數
我們需要限制每個IP同時連接到後端的數量。我們爲此使用了limit_conn
nginx指令。但是在所有情況下它都不能很好地工作。 如果用戶從一個IP生成大量連接並快速關閉它們,則nginx會將此請求傳遞到後端,但由於客戶端連接已關閉,因此此連接不在limit_conn
中計數。
是否有可能限制每個IP到nginx的後端服務器同時連接的數量?
我們使用nginx和應用服務器作爲後端。Nginx:限制每個IP到後端的同時連接數
我們需要限制每個IP同時連接到後端的數量。我們爲此使用了limit_conn
nginx指令。但是在所有情況下它都不能很好地工作。 如果用戶從一個IP生成大量連接並快速關閉它們,則nginx會將此請求傳遞到後端,但由於客戶端連接已關閉,因此此連接不在limit_conn
中計數。
是否有可能限制每個IP到nginx的後端服務器同時連接的數量?
您可能要設置
proxy_ignore_client_abort off;
決定應與代理服務器的連接被關閉,如果 客戶端關閉,而無需等待響應的連接。
另一個建議是使用limit_req
來限制請求速率。
恐怕這個設施還沒有開箱即可用於nginx。按照Nginx FAQ
許多用戶都要求Nginx的實現負載均衡 一個功能來限制每個後端請求(通常一個)的數量。 雖然這種支持計劃,這是值得一提的這個功能的需求 根植於不當行爲的 應用程序的一部分被代理
我已經看到了這nginx-limit-upstream一些第三方的模塊,但我我從未嘗試過。
Nginx開發團隊也建議使用'proxy_ignore_client_abort off'。它到目前爲止工作。 – Anton