nginx的带宽限制和并发控制
生活随笔
收集整理的這篇文章主要介紹了
nginx的带宽限制和并发控制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們經常會遇到這種情況,服務器流量異常,負載過大等等。對于大流量惡意的攻擊訪問,會帶來帶寬的浪費,服務器壓力,影響業務,往往考慮對同一個ip的連接數,并發數進行限制。
一、限制并發
1.修改配置文件
[root@server1 conf]# vim nginx.conf33 #gzip on;34 limit_conn_zone $binary_remote_addr zone=addr:10m;35 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #注意:必須寫在server上面36 server {......54 location /download {55 limit_conn addr 1; #只能一個并發,多了會報錯56 57 #limit_rate 50k; #限制帶寬,每秒最多50k58 }其中:
limit_conn_zone $binary_remote_addr zone=addr:10m;?表示大小是10m內存 10m的內存來對IP傳輸開銷
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;?1s不超過一個請求
limit_conn_zone?用來限制同一時間連接數,即并發限制
limit_req_zone?用來限制單位時間的請求數,即速率限制,采用漏桶算法
$binary_remote_addr?是限制同一客戶端ip地址
zone=addr:10m?表示生成一個大小為10m,名字為one的內存區域,用來存儲訪問的頻次信息
重新加載nginx:
[root@server1 conf]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@server1 conf]# nginx -s reload2.測試
新建download目錄后放入測試文件:
[root@server1 conf]# mkdir /usr/local/nginx/html/download [root@server1 conf]# cd /usr/local/nginx/html/download [root@server1 download]# ls 1.jpg清空日志文件:
[root@server1 download]# cd /usr/local/nginx/logs [root@server1 logs]# >access.log [root@server1 logs]# cat access.log并發測試,在客戶端:
[root@fserver2 ~]# ab -c 10 -n 1000 http://172.25.254.1/download/1.jpg- ?
測試后查看日志可以發現好多503錯誤,即服務器對并發進行了限制
二、限制帶寬
帶寬限制的測試即只有配置文件不相同:
[root@server1 conf]# vim nginx.conf33 #gzip on;34 limit_conn_zone $binary_remote_addr zone=addr:10m;35 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #注意:必須寫在server上面36 server {......54 location /download {55 #limit_conn addr 1; #只能一個并發,多了會報錯56 57 limit_rate 50k; #限制帶寬,每秒最多50k58 }最后進行客戶端測試時發現速度明顯變慢,即服務器對速度進行了限制
總結
以上是生活随笔為你收集整理的nginx的带宽限制和并发控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE解决表空间不释放空间
- 下一篇: 小葵花妈妈课堂开课了《RecyclerV