图文详解TCP_IP基础原理和技术电子书pdf下载
## 这里取得原始用户的IP地址 map $http_x_forwarded_for $clientRealIp { "" $remote_addr; ~^(?P这里说明一下,limit_conn_zone ,limit_conn ,limit_req_zone,limit_req 可以根据你产品的需求进行修改。经过ab的测试:[0-9\.]+),?.*$ $firstAddr; } ## 针对原始用户 IP 地址做限制 limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ; limit_conn TotalConnLimitZone 50; limit_conn_log_level notice; ## 针对原始用户 IP 地址做限制 limit_req_zone $clientRealIp zone=ConnLimitZone:20m rate=10r/s; #limit_req zone=ConnLimitZone burst=10 nodelay; limit_req_log_level notice; ## 具体服务器配置 server { listen 80; location ~ \.php$ { ## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了 limit_req zone=ConnLimitZone burst=5 nodelay; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } }
ab -c 100 -t 10 http://localhost/test.php
没修改配置文件之前的访问日志,看看这时候的访问日志
修改了配置文件之后,加上 nodelay之后超过 burst大小的请求就会直接 返回503,如图
这样可以防止别人开很多进程访问你的网站。把你的网站搞垮~~~
原文链接:http://hi.baidu.com/lifang218c/item/010c86e4769f3b0464db00c7
转载请注明:谷谷点程序 » nginx网站安全配置(Nginx)