nginx 限流(限制並發配置)


需求:

當服務器的訪問壓力過大時,實現降級,將接受不了的請求重定向到應急界面。

一、限流nginx設置

nginx限流使用模塊 upstream

放置在http模塊

#限流並發

upstream node{
server 127.0.0.1:8080 max_conns=1;
}

#超出的請求會返回502狀態碼

 

放置在server模塊

#測試地址,訪問服務器py路徑會轉發到本機的8080端口
location /py { proxy_pass http://node/; } #錯誤重定向到降級界面 error_page 502 503 https://fund/b.html;

注意:如果少了一個/ 會將請求轉發到8080的/py路徑下
proxy_pass http://node;
 
        

二、准備測試環境

開啟8080端口,使用web.py 開啟一個簡單的端口

安裝web.py 

pip install web.py==0.40-dev1

編寫網站腳本webtest.py

import web

urls = (
    '/', 'index'
)

class index:
    def GET(self):
        return "Hello, world!"

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

運行腳本啟動端口 python webtest.py 0.0.0.0:8080 啟動8080端口允許任何IP訪問

三、測試限流配置

使用jmeter測試

1、限流設置為並發連接數1

請求

結果

並發請求5,發送100次,共500個請求,成功367,失敗133

並發請求10.發送100次,共1000個請求,成功566,失敗434

 並發請求20.發送100次,共2000個請求,成功848,失敗1152

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM