nginx做限流設定

大雄45發表於2020-07-31
導讀 當伺服器的訪問壓力過大時,實現降級,將接受不了的請求重定向到應急介面。
一、限流nginx設定

nginx限流使用模組 upstream

放置在http模組
nginx做限流設定nginx做限流設定
#限流併發

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

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

放置在server模組

#測試地址,訪問伺服器py路徑會轉發到本機的8080埠

location /py {
proxy_pass 
}

#錯誤重定向到降級介面

error_page 502 503 

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

proxy_pass ;
二、準備測試環境

開啟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

請求
nginx做限流設定nginx做限流設定
結果
nginx做限流設定nginx做限流設定
併發請求5,傳送100次,共500個請求,成功367,失敗133

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

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

__EOF__

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2708513/,如需轉載,請註明出處,否則將追究法律責任。

相關文章