日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx:Nginx limit_req limit_conn限速

發(fā)布時間:2023/11/30 Nginx 122 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx:Nginx limit_req limit_conn限速 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

  • Nginx是一個異步框架的Web服務(wù)器,也可以用作反向代理,負(fù)載均衡器和HTTP緩存,最常用的便是Web服務(wù)器。nginx對于預(yù)防一些攻擊也是很有效的,例如CC攻擊,爬蟲,本文將介紹限制這些攻擊的方法,可以使用nginx的ngx_http_limit_conn_module、ngx_http_limit_req_module這兩個模塊達(dá)到目的,該模塊為nginx內(nèi)置模塊,yum安裝即有,無需編譯安裝。本文就介紹nginx這兩個模塊的使用和細(xì)節(jié),希望能夠?qū)π枰男』锇橛兴鶐椭?/li>

基本環(huán)境介紹

  • 兩臺機器,192.168.30.105和192.168.30.106均為 1c2g40g配置,106主機提供web服務(wù),105主機部署ab工具。

web服務(wù)如下

ab壓測獲取基礎(chǔ)數(shù)據(jù)

105 ab壓測結(jié)果

對web服務(wù)器index.html頁面發(fā)送并發(fā)為1000總計1000000的請求測試,每個請求建立一個連接
ab -n 1000000 -c 1000 http://192.168.30.106:80/index.html

從測試結(jié)果來看,請求全部成功;有98%的請求在22ms以內(nèi)就完成響應(yīng),有99%的請求在1007ms以內(nèi)就完成響應(yīng),請求響應(yīng)的最長時長為31077ms。

nignx ngx_http_limit_conn_module模塊

  • 該模塊的功能是限制單個ip建立連接的個數(shù)。

對nginx進行配置

http {limit_conn_zone $binary_remote_addr zone=one:10m;...server {...location / {limit_conn one 1;}

限制每個ip連接的個數(shù)為一個

測試

對web服務(wù)器index.html頁面發(fā)送并發(fā)為1000總計1000000的請求測試
ab -n 1000000 -c 1000 http://192.168.30.106:80/index.html

從測試結(jié)果來看,請求全部成功;有98%的請求在58ms以內(nèi)就完成響應(yīng),有99%的請求在1008ms以內(nèi)就完成響應(yīng),請求響應(yīng)的最長時長為31870ms。

測試效果

測試結(jié)果無變化,查眾多文檔,有問題,無答案,估計是個bug。

nignx ngx_http_limit_req_module模塊

  • 該模塊的功能是限制單個ip請求的個數(shù)(請求頻率)。

對nginx進行配置

去掉之前l(fā)imit_conn 配置,添加如下配置

http {limit_req_zone $binary_remote_addr zone=two:10m rate=1r/s;...server {...location / {limit_req zone=two;}

限制請求的頻率為單個ip每秒一個

測試

對web服務(wù)器index.html頁面發(fā)送并發(fā)為1000總計1000000的請求測試
ab -n 1000000 -c 1000 http://192.168.30.106:80/index.html

從測試結(jié)果來看,請求只有55個成功。

測試效果

有效的阻止了用戶的請求。

測試過程web服務(wù)資源使用情況監(jiān)控

CPU利用

網(wǎng)絡(luò)接口流量

TCP連接數(shù)狀態(tài)

總結(jié)

  • 從測試的結(jié)果以及監(jiān)控數(shù)據(jù)來看,limit_conn模塊無效,不能起到任何限制作用;limit_req模塊能夠明顯限制用戶的請求內(nèi)容,對于超出限制的請求,給予503的反饋;兩者對服務(wù)器性能上都沒有優(yōu)化作用,拒絕的請求需要花費更多的硬件資源來處理,CPU消耗增多,接口流出的流量劇增。
  • 測試結(jié)果不是很理想,對于文中的錯誤和不足,歡迎有見識的小伙伴批評指教。

參考文檔

  • 官方文檔:http://nginx.org/en/docs
  • 使用nginx limit_req限制用戶請求速率:https://www.centos.bz/2017/03/using-nginx-limit_req-limit-user-request-rate
  • 關(guān)于limit_req和limit_conn的區(qū)別:https://blog.csdn.net/u012566181/article/details/49968283
  • ab壓力測試報錯:https://www.cnblogs.com/felixzh/p/8295471.html
  • ab性能測試結(jié)果分析:https://www.cnblogs.com/gumuzi/p/5617232.html
  • Rate Limiting with NGINX and NGINX Plus:https://www.nginx.com/blog/rate-limiting-nginx/

轉(zhuǎn)載于:https://www.cnblogs.com/William-Guozi/p/nginx_limit.html

總結(jié)

以上是生活随笔為你收集整理的Nginx:Nginx limit_req limit_conn限速的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。