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
- Nginx limit模組限制併發數NginxMIT
- Linux下檢視Nginx的併發連線數和連線狀態LinuxNginx
- 限制併發數
- 限制單個IP併發TCP連線的方法TCP
- 利用profile限制某使用者的連線數
- 限制單個IP併發TCP連線的方法(轉)TCP
- 單機併發連線數研究
- 詳解nginx的請求限制(連線限制和請求限制)Nginx
- MySql 限制連線程式數MySql線程
- NGINX限制連線的實踐 (Defense DDOS)Nginx
- Apache伺服器限制併發連線和下載速度Apache伺服器
- 詳解IIS最大併發連線數
- 防火牆的併發連線數(轉)防火牆
- profile限制user連線session數Session
- Linux apache怎麼限制併發連線和下載速度LinuxApache
- GBase 資料庫使用者的最大連線數限制資料庫
- Linux檢視埠併發連線數Linux
- Apache提供併發連線請求數量Apache
- Linux配置支援高併發TCP連線(socket最大連線數)LinuxTCP
- 什麼是併發連線數和請求數
- Windows TCP連線數限制解決WindowsTCP
- Oracle限制某個使用者的連線數及PROFILE介紹Oracle
- 開啟nginx狀態監控,檢視web伺服器的併發連線數NginxWeb伺服器
- linux系統併發連線數檢視Linux
- C# HttpClient使用和注意事項,.NET Framework連線池併發限制C#HTTPclientFramework
- Tengine限制連線數和白名單功能
- Linux對外連線埠數限制Linux
- nginx 高併發配置引數Nginx
- Nginx/Apache服務連線數梳理NginxApache
- 檢視mysql資料庫連線數、併發數相關資訊MySql資料庫
- 併發、多執行緒、HTTP連線數有何關係?執行緒HTTP
- IIS連線數、併發連線數、最大併發工作執行緒數、應用程式池的佇列長度、應用程式池的最大工作程式數詳解執行緒佇列
- mysql關於最大連線數、最大併發執行緒數的區別MySql執行緒
- gorm使用事務併發情況下切有最大mysql連線數限制的情況下的BUG,踩坑了GoORMMySql
- 兩表連線三:合併連線
- nginx 長連線配置Nginx
- oracle透過trigger來限制使用者和ip連線資料庫的限制Oracle資料庫