欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx防止流量攻擊的配置詳解

 更新時間:2017年05月04日 09:23:55   作者:柒  
這篇文章主要給大家分享了Nginx防止流量攻擊的配置方法,文中給出了詳細(xì)的介紹和配置示例代碼,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。

使用場景

最近在工作中遇到一個問題,項目中報告查詢系統(tǒng)負(fù)載均衡集群相關(guān)配置已經(jīng)完成,兩種實現(xiàn)方式分別是基于Ehcache和Redis的session管理策略。

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

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

如何使用

conf配置

#統(tǒng)一在http域中進行配置
#限制請求
limit_req_zone $binary_remote_addr $uri zone=api_read:20m rate=50r/s;
#按ip配置一個連接 zone
limit_conn_zone $binary_remote_addr zone=perip_conn:10m;
#按server配置一個連接 zone
limit_conn_zone $server_name zone=perserver_conn:100m;
server {
  listen  80;
  server_name report.52itstyle.com;
  index login.jsp;
  location / {
    #請求限流排隊通過 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)情況,超出限制額度,將會報503錯誤,提示:

503 Service Temporarily Unavailable
The 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 {
 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)時超過速度限制被攔了,請他在空座位上坐著,等排隊,如果檢查站空了,就可以通過。如果連座位都坐滿了,那就抱歉了,請求直接退回,客戶端得到一個服務(wù)器忙的響應(yīng)。所以說burst跟request_rate一點關(guān)系都沒有,設(shè)成10000,就是1萬個請求可以等著排隊,而檢查站還是1秒鐘放行5個請求(龜速)。而且也不能一直排隊,所以nginx還設(shè)了超時,排隊超過一定時間,也是直接退回,返回服務(wù)器忙的響應(yīng)。

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

ngx_http_limit_conn_module (static)
ngx_http_limit_req_module (static)

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解Nginx之Location配置(Location匹配順序)

    詳解Nginx之Location配置(Location匹配順序)

    這篇文章主要介紹了詳解Nginx之Location配置(Location匹配順序),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Nginx配置中指令root和alias的區(qū)別淺析

    Nginx配置中指令root和alias的區(qū)別淺析

    這篇文章給大家主要介紹了Nginx配置中指令root與alias的區(qū)別,文章介紹的很詳細(xì),詳細(xì)對大家理解root與alias很有幫助,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Nginx進程管理和重載原理詳解

    Nginx進程管理和重載原理詳解

    這篇文章主要給大家介紹了關(guān)于Nginx進程管理和重載原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案

    nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案

    這篇文章主要介紹了nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • 在Debian11上安裝Openresty服務(wù)(Nginx+Lua)的詳細(xì)教程

    在Debian11上安裝Openresty服務(wù)(Nginx+Lua)的詳細(xì)教程

    OpenResty 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內(nèi)部集成了大量精良的 Lua 庫、第三方模塊以及大多數(shù)的依賴項,這篇文章主要介紹了在Debian11上安裝Openresty服務(wù)(Nginx+Lua)?,需要的朋友可以參考下
    2022-10-10
  • Nginx搭建rtmp直播服務(wù)器實現(xiàn)代碼

    Nginx搭建rtmp直播服務(wù)器實現(xiàn)代碼

    這篇文章主要介紹了Nginx搭建rtmp直播服務(wù)器實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Nginx 域名轉(zhuǎn)發(fā)的實現(xiàn)

    Nginx 域名轉(zhuǎn)發(fā)的實現(xiàn)

    這篇文章主要介紹了Nginx 域名轉(zhuǎn)發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 為什么我推薦Nginx作為后端服務(wù)器代理(原因解析)

    為什么我推薦Nginx作為后端服務(wù)器代理(原因解析)

    這篇文章主要介紹了為什么我推薦Nginx作為后端服務(wù)器代理,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • nginx臨時搭建rtmp服務(wù)器的方法實現(xiàn)

    nginx臨時搭建rtmp服務(wù)器的方法實現(xiàn)

    nginx是一款優(yōu)秀的反向代理工具,通過Nginx自帶的rtmp模塊,也可以實現(xiàn)rtmp服務(wù)器的搭建,本文主要介紹了nginx臨時搭建rtmp服務(wù)器,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Nginx同時支持Http和Https的配置詳解

    Nginx同時支持Http和Https的配置詳解

    這篇文章主要介紹了Nginx同時支持Http和Https的配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論