nginx 限制使用者併發連線數
要限制使用者的連線數可以通過Limit zone模組來達到目的,即限制同一使用者IP地址的併發連線數。
該模組提供了兩個命令limit_zone和limit_conn,其中limit_zone只能用在http區段,而limit_conn可以用在http, server, location區段。
示例配置
http { limit_zone one $binary_remote_addr 10m;
server { location /download/ { limit_conn one 1; } } } |
指 令
該模組提供了以下3條指令:
指令名稱:limit_zone
功 能:該指令用於定義一個zone,該zome將會被用於儲存會話狀態。能夠儲存的會話數量是由分被交付的變數和memory_max_size的大小決定的。
例如:
limit_zone one $binary_remote_addr 10m; |
客戶端的IP地址被用作會話,注意,這裡使用的是$binary_remote_addr而不是$remote_addr,這是因為,$remote_addr的長度為7到15個位元組,它的會話資訊的長度為 32 或 64 bytes;$binary_remote_addr 的長度為 4 位元組,會話資訊的長度為 32 位元組。當設定1M的一個zone時,那麼如果是用$binary_remote_addr方式,該zone將會存放32000個會話。
語 法: limit_zone zone_name $variable memory_max_size
默 認 值: no
使用環境: http
指令名稱:limit_conn
功 能:該指令用於為一個會話設定最大的併發連線數。如果併發請求數超過這個限制,那麼將會出現"Service unavailable" (503)。
例如:
limit_zone one $binary_remote_addr 10m;
server { location /download/ { limit_conn one 1; } |
這個設定將會使得來自用同一個IP的併發連線不能超過1個連線。
語 法:: limit_conn zone_name max_clients_per_ip
默 認 值: no
使用環境: http, server, location
指令名稱:limit_conn_log_level
語 法: limit_conn_log_level info | notice | warn | error
默 認 值: error
使用環境: http, server, location
功 能:該指令用於設定日誌的錯誤級別,當達到連線限制時,將會產生錯誤日誌。
配置例項
看下面的一個例子:
[root@flv conf]# cat nginx.conf
worker_processes 4;
events { worker_connections 10240; }
http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; limit_zone flv_down $binary_remote_addr 10m;
server { listen 80; server_name flv.xxx.com; …… location /download { limit_conn flv_down 1; }
error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } |
在這個例子中,我們使用了兩個命令,limit_zone和limit_conn。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-732627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx如何限制併發連線請求數?Nginx
- 限制併發數
- 限制單個IP併發TCP連線的方法TCP
- 詳解nginx的請求限制(連線限制和請求限制)Nginx
- NGINX限制連線的實踐 (Defense DDOS)Nginx
- GBase 資料庫使用者的最大連線數限制資料庫
- Linux apache怎麼限制併發連線和下載速度LinuxApache
- 詳解IIS最大併發連線數
- Linux檢視埠併發連線數Linux
- 開啟nginx狀態監控,檢視web伺服器的併發連線數NginxWeb伺服器
- C# HttpClient使用和注意事項,.NET Framework連線池併發限制C#HTTPclientFramework
- 檢視mysql資料庫連線數、併發數相關資訊MySql資料庫
- 併發、多執行緒、HTTP連線數有何關係?執行緒HTTP
- gorm使用事務併發情況下切有最大mysql連線數限制的情況下的BUG,踩坑了GoORMMySql
- IIS連線數、併發連線數、最大併發工作執行緒數、應用程式池的佇列長度、應用程式池的最大工作程式數詳解執行緒佇列
- 新特性解讀 | MySQL 8.0.28 使用者連線記憶體限制MySql記憶體
- mysql關於最大連線數、最大併發執行緒數的區別MySql執行緒
- nginx連線資源管理Nginx
- 短影片平臺原始碼,利用mq限制入庫併發數原始碼MQ
- springboot + shiro 嘗試登入次數限制與併發登入人數控制Spring Boot
- Nginx速度限制Nginx
- 千萬併發連線下,如何保障網路效能
- 簡單介紹使用p-limit 限制併發數原始碼解析MIT原始碼
- 在 NGINX 中根據使用者真實 IP 進行限制Nginx
- Nginx Ingress 高併發實踐Nginx
- 對於瀏覽器請求介面限制,是否有必要開發一套請求工作管理員元件,自主的去控制請求的併發,保證在瀏覽器允許的最大併發連線數限制之中,避免請求阻塞和資源搶佔。瀏覽器元件
- TCP 百萬併發 資料連線測試 python+locustTCPPython
- Java中實現1,000,000個併發連線Java
- 連線池和連線數詳解
- 【Nginx】併發量太高,Nginx扛不住?這次我錯怪Nginx了!!Nginx
- 效能測試中如何確定併發使用者數
- day64:nginx模組之限制連線&狀態監控&Location/用nginx+php跑專案/擴充套件應用節點NginxPHP套件
- Nginx上游伺服器長連線配置Nginx伺服器
- 你知道併發使用者數應該怎麼算嗎?
- 高併發中nginx較優的配置Nginx
- hi-nginx-java併發效能一窺NginxJava
- Nginx+php-fpm高併發優化NginxPHP優化
- Nginx 實現高併發的原理分析Nginx
- MySQL連線數管理MySql