註意: nginx 1.1.8 之後的版本的語法改為limit_conn_zone $binary_remote_addr zone=NAME:10m; NAME 就是 zone 的名字詳情請看這裡 http://nginx.org/en/docs/http/ngx_http_limit_conn_ ...
註意:
nginx 1.1.8 之後的版本的語法改為limit_conn_zone $binary_remote_addr zone=NAME:10m;
NAME 就是 zone 的名字詳情請看這裡 http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
限制連接數:
要限制連接,必須先有一個容器對連接進行計數,在http段加入如下代碼:
"zone=" 給它一個名字,可以隨便叫,這個名字要跟下麵的 limit_conn 一致
$binary_remote_addr = 用二進位來儲存客戶端的地址,1m 可以儲存 32000 個併發會話
... 省掉 N 字
http
{
limit_conn_zone $binary_remote_addr zone=addr:10m;
接下來需要對server不同的位置(location段)進行限速,比如限制每個IP併發連接數為1,則
server
{
listen 80;
server_name 192.168.11.128;
index index.html index.htm index.php;
limit_conn addr 1; #是限制每個IP只能發起1個連接 (addr 要跟 limit_conn_zone 的變數對應)
limit_rate 100k; #限速為 100KB/秒
root html;
註意事項:
limit_rate 100k; //是對每個連接限速100k。這裡是對連接限速,而不是對IP限速!如果一個IP允許兩個併發連接,那麼這個IP就是限速limit_rate * 2