日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Nginx何防止流量攻擊,大部分程序員都收藏了...

兩種實(shí)現(xiàn)方式分別是基于Ehcache和Redis的session管理策略。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供朔州網(wǎng)站建設(shè)、朔州做網(wǎng)站、朔州網(wǎng)站設(shè)計(jì)、朔州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、朔州企業(yè)網(wǎng)站模板建站服務(wù),十載朔州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

大家都知道服務(wù)器資源有限的,但是客戶端來(lái)的請(qǐng)求是無(wú)限的(不排除惡意攻擊), 為了保證大部分的請(qǐng)求能夠正常響應(yīng),不得不放棄一些客戶端來(lái)的請(qǐng)求,所以我們會(huì)采用Nginx的限流操作, 這種操作可以很大程度上緩解服務(wù)器的壓力, 使其他正常的請(qǐng)求能夠得到正常響應(yīng)。

如何使用Nginx實(shí)現(xiàn)基本的限流,比如單個(gè)IP限制每秒訪問(wèn)100次。通過(guò)Nginx限流模塊,我們可以設(shè)置一旦并發(fā)連接數(shù)超過(guò)我們的設(shè)置,將返回503錯(cuò)誤給客戶端。這樣可以非常有效的防止CC攻擊。再配合 iptables防火墻,基本上CC攻擊就可以無(wú)視了。

如何使用

conf配置

 
 
 
  1. #統(tǒng)一在http域中進(jìn)行配置
  2. #限制請(qǐng)求
  3. limit_req_zone $binary_remote_addr $uri zone=api_read:20m rate=100r/s;
  4. #按ip配置一個(gè)連接 zone
  5. limit_conn_zone $binary_remote_addr zone=perip_conn:10m;
  6. #按server配置一個(gè)連接 zone
  7. limit_conn_zone $server_name zone=perserver_conn:100m;
  8. server {
  9.  listen 80;
  10.  server_name test.domain.com;
  11.  index login.do;
  12.  location / {
  13.  #請(qǐng)求限流排隊(duì)通過(guò) burst默認(rèn)是0
  14.  limit_req zone=api_read burst=5;
  15.  #連接數(shù)限制,每個(gè)IP并發(fā)請(qǐng)求為2
  16.  limit_conn perip_conn 2;
  17.  #服務(wù)所限制的連接數(shù)(即限制了該server并發(fā)連接數(shù)量)
  18.  limit_conn perserver_conn 1000;
  19.  #連接限速
  20.  limit_rate 100k;
  21.  proxy_pass http://test;
  22.  }
  23. }
  24. upstream report {
  25.  fair;
  26.  server 172.16.0.10:8882 weight=1 max_fails=2 fail_timeout=30s;
  27.  server 172.16.0.10:8881 weight=1 max_fails=2 fail_timeout=30s;
  28. }

配置503錯(cuò)誤

默認(rèn)情況,超出限制額度,將會(huì)報(bào)503錯(cuò)誤,提示:

 
 
 
  1. 503 Service Temporarily Unavailable
  2. The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Sorry for the inconvenience.
  3. Please report this message and include the following information to us.
  4. Thank you very much!

這樣顯示沒(méi)毛病,但是不夠友好,這里我們自定義503錯(cuò)誤。

 
 
 
  1. error_page 500 502 503 504 /50x.html;
  2. location = /50x.html {
  3.  root html;#自定義50X錯(cuò)誤
  4. }

配置說(shuō)明

limit_conn_zone

是針對(duì)每個(gè)IP定義一個(gè)存儲(chǔ)session狀態(tài)的容器。這個(gè)示例中定義了一個(gè)100m的容器,按照32bytes/session,可以處理3200000個(gè)session。

limit_rate 300k;

對(duì)每個(gè)連接限速300k. 注意,這里是對(duì)連接限速,而不是對(duì)IP限速。如果一個(gè)IP允許兩個(gè)并發(fā)連接,那么這個(gè)IP就是限速limit_rate×2。

burst=5;

這相當(dāng)于在檢查站req旁邊放5個(gè)座位。如果某個(gè)請(qǐng)求當(dāng)時(shí)超過(guò)速度限制被攔了,請(qǐng)他在空座位上坐著,等排隊(duì),如果檢查站空了,就可以通過(guò)。如果連座位都坐滿了,那就抱歉了,請(qǐng)求直接退回,客戶端得到一個(gè)服務(wù)器忙的響應(yīng)。所以說(shuō)burst跟request_rate一點(diǎn)關(guān)系都沒(méi)有,設(shè)成10000,就是1萬(wàn)個(gè)請(qǐng)求可以等著排隊(duì),而檢查站還是1秒鐘放行5個(gè)請(qǐng)求(龜速)。而且也不能一直排隊(duì),所以nginx還設(shè)了超時(shí),排隊(duì)超過(guò)一定時(shí)間,也是直接退回,返回服務(wù)器忙的響應(yīng)。

以上配置Nginx需要配置以下模塊:

ngx_http_limit_conn_module (static)

ngx_http_limit_req_module (static)

執(zhí)行命令 nginx -V 就可以檢查到是否有安裝。


文章標(biāo)題:Nginx何防止流量攻擊,大部分程序員都收藏了...
分享地址:http://m.5511xx.com/article/dhpsdid.html