十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章將為大家詳細(xì)講解有關(guān)Nginx中怎么防止流量攻擊,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

成都創(chuàng)新互聯(lián)長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為崖州企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),崖州網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
conf配置
#統(tǒng)一在http域中進(jìn)行配置#限制請求limit_req_zone $binary_remote_addr $uri zone=api_read:20m rate=50r/s;#按ip配置一個連接 zonelimit_conn_zone $binary_remote_addr zone=perip_conn:10m;#按server配置一個連接 zonelimit_conn_zone $server_name zone=perserver_conn:100m;server { listen 80; server_name report.52itstyle.com; index login.jsp; location / { #請求限流排隊(duì)通過 burst默認(rèn)是0 limit_req zone=api_read burst=5; #連接數(shù)限制,每個IP并發(fā)請求為2 limit_conn perip_conn 2; #服務(wù)所限制的連接數(shù)(即限制了該server并發(fā)連接數(shù)量) limit_conn perserver_conn 1000; #連接限速 limit_rate 100k; proxy_pass http://report; }}upstream report { fair; server 172.16.1.120:8882 weight=1 max_fails=2 fail_timeout=30s; server 172.16.1.120:8881 weight=1 max_fails=2 fail_timeout=30s;}
配置503錯誤
默認(rèn)情況,超出限制額度,將會報(bào)503錯誤,提示:
503 Service Temporarily UnavailableThe server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Sorry for the inconvenience.Please report this message and include the following information to us.Thank you very much!
這樣顯示沒毛病,但是不夠友好,這里我們自定義503錯誤。
error_page 500 502 503 504 /50x.html;location = /50x.html/ http://www.bbqmw.net/qm_yeqm/ { root html;#自定義50X錯誤}
配置說明
limit_conn_zone
是針對每個IP定義一個存儲session狀態(tài)的容器。這個示例中定義了一個100m的容器,按照32bytes/session,可以處理3200000個session。
limit_rate 300k;
對每個連接限速300k. 注意,這里是對連接限速,而不是對IP限速。如果一個IP允許兩個并發(fā)連接,那么這個IP就是限速limit_rate×2。
burst=5;
這相當(dāng)于在檢查站req旁邊放5個座位。如果某個請求當(dāng)時超過速度限制被攔了,請他在空座位上坐著,等排隊(duì),如果檢查站空了,就可以通過。如果連座位都坐滿了,那就抱歉了,請求直接退回,客戶端得到一個服務(wù)器忙的響應(yīng)。所以說burst跟request_rate一點(diǎn)關(guān)系都沒有,設(shè)成10000,就是1萬個請求可以等著排隊(duì),而檢查站還是1秒鐘放行5個請求(龜速)。而且也不能一直排隊(duì),所以nginx還設(shè)了超時,排隊(duì)超過一定時間,也是直接退回,返回服務(wù)器忙的響應(yīng)。
關(guān)于Nginx中怎么防止流量攻擊就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。