同一時刻對服務器上文件的大量的高速訪問,可能會極大的增加服務器的負擔,爲了緩解服務器的I/O負擔,如果配置了nginx服務器,建議進行限速,具體實現如下:
首先在 http 段配置一個 limit_zone,然後在需要的地方使用 limit_conn 和 limit_rate 進行限速設置,如下一個簡單的例子。
http {
limit_zone one $binary_remote_addr 10m;
server {
location /files/ {
limit_conn one 1;
limit_rate_after 1000k;
limit_rate 100k;
}
}
}
limit_zone,是針對每個IP定義一個存儲session狀態的容器。這個示例中定義了一個名叫one的10m大小的容器,這個名字會在後面的limit_conn中使用。
limit_conn one 1,限制在one中記錄狀態的每個IP只能發起一個併發連接。
limit_rate_after 1000k,在下載1000k後開始限速。
limit_rate 100k,對每個連接限速100k. 注意,這裏是對連接限速,而不是對IP限速。如果一個IP允許三個併發連接,那麼這個IP就是限速爲limit_rate×3,在設置的時候要根據自己的需要做設置調整,要不然會達不到自己希望的目的。