Nginx中怎么防止流量攻击-创新互联
这篇文章将为大家详细讲解有关Nginx中怎么防止流量攻击,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
目前成都创新互联公司已为上千家的企业提供了网站建设、域名、网站空间、网站托管维护、企业网站设计、潍坊网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。conf配置
#统一在http域中进行配置#限制请求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 / { #请求限流排队通过 burst默认是0 limit_req zone=api_read burst=5; #连接数限制,每个IP并发请求为2 limit_conn perip_conn 2; #服务所限制的连接数(即限制了该server并发连接数量) 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错误
默认情况,超出限制额度,将会报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/ /tupian/20230522/ { root html;#自定义50X错误}
配置说明
limit_conn_zone
是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个100m的容器,按照32bytes/session,可以处理3200000个session。
limit_rate 300k;
对每个连接限速300k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。
burst=5;
这相当于在检查站req旁边放5个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。所以说burst跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排队,而检查站还是1秒钟放行5个请求(龟速)。而且也不能一直排队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。
关于Nginx中怎么防止流量攻击就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文章标题:Nginx中怎么防止流量攻击-创新互联
转载源于:http://scyanting.com/article/csseho.html