Nginx限流-并发量限流配置
生活随笔
收集整理的這篇文章主要介紹了
Nginx限流-并发量限流配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
控制并發量(連接數)
ngx_http_limit_conn_module 提供了限制連接數的能力。主要是利用limit_conn_zone和limit_conn兩個指令。
利用連接數限制 某一個用戶的ip連接的數量來控制流量。
注意:并非所有連接都被計算在內 只有當服務器正在處理請求并且已經讀取了整個請求頭時,才會計算有效連接。此處忽略測試。
配置語法:
Syntax: limit_conn zone number; Default: —; Context: http, server, location;(1)配置限制固定連接數
如下,配置如下:
上圖配置如下:
http {include mime.types;default_type application/octet-stream;#cachelua_shared_dict dis_cache 128m;#限流設置limit_req_zone $binary_remote_addr zone=contentRateLimit:10m rate=2r/s;#根據IP地址來限制,存儲內存大小10Mlimit_conn_zone $binary_remote_addr zone=addr:1m;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;server {listen 80;server_name localhost;#所有以brand開始的請求,訪問本地changgou-service-goods微服務location /brand {limit_conn addr 2;proxy_pass http://192.168.211.1:18081;}location /update_content {content_by_lua_file /root/lua/update_content.lua;}location /read_content {limit_req zone=contentRateLimit burst=4 nodelay;content_by_lua_file /root/lua/read_content.lua;}} }表示:
limit_conn_zone $binary_remote_addr zone=addr:10m; 表示限制根據用戶的IP地址來顯示,設置存儲地址為的內存大小10Mlimit_conn addr 2; 表示 同一個地址只允許連接2次。測試:
此時開3個線程,測試的時候會發生異常,開2個就不會有異常
(2)限制每個客戶端IP與服務器的連接數,同時限制與虛擬服務器的連接總數。(了解)
如下配置:
limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server { listen 80;server_name localhost;charset utf-8;location / {limit_conn perip 10;#單個客戶端ip與服務器的連接數.limit_conn perserver 100; #限制與服務器的總連接數root html;index index.html index.htm;} }?
總結
以上是生活随笔為你收集整理的Nginx限流-并发量限流配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx限流-速率实现
- 下一篇: Lua介绍