Nginx中怎么防止流量攻击

  介绍

这篇文章将为大家详细讲解有关Nginx中怎么防止流量攻击,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

配置配置

#统一在http域中进行配置#限制请求limit_req_zone binary_remote_addr uri带美元=api_read: 20米率=50 r/s; #按ip配置一个连接zonelimit_conn_zone binary_remote_addr带美元=perip_conn: 10米;#按服务器配置一个连接zonelimit_conn_zone server_name区=perserver_conn:美元100;服务器{听80;server_name report.52itstyle.com;login . jsp指数;位置/{#请求限流排队通过破裂默认是0 limit_req区==5 api_read破裂;#连接数限制,每个IP并发请求为2 limit_conn perip_conn 2;#服务所限制的连接数(即限制了该服务器并发连接数量)limit_conn perserver_conn 1000;#连接限速limit_rate 100 k;proxy_pass http://report;上游报告}}{公平;服务器172.16.1.120:8882重量=1 max_fails=2 fail_timeout=30年代;服务器172.16.1.120:8881重量=1 max_fails=2 fail_timeout=30年代;}

配置503错误

默认情况,超出限制额度,将会报503错误,提示:

503服务暂时UnavailableThe服务器暂时无法为您的请求服务由于维护停工期或容量问题。请稍后再试。为给您带来的不便抱歉。请报告这个消息,并包括下列信息给我们。非常感谢!

这样显示没毛病,但是不够友好,这里我们自定义503错误。

error_page 500 502 503 504/50 x.html;位置=/50 x.html/http://www.bbqmw.net/qm_yeqm/,,{根html; #自定义50 x错误}

配置说明

limit_conn_zone

是针对每个IP定义一个存储会话状态的容器。这个示例中定义了一个100米的容器,按照32字节/会话,可以处理3200000个会话。

limit_rate 300 k;

对每个连接限速300 k。注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2 .

破裂=5;

这相当于在检查站要求旁边放5个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排的队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。所以说突然跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排的队,而检查站还是1秒钟放行5个请求(龟速)。而且也不能一直排的队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。

关于nginx中怎么防止流量攻击就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

Nginx中怎么防止流量攻击