nginxip访问网站
❶ 网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击
对于网站来说,尤其是流量较大出名的网站,经常遇到攻击,如DDOS攻击等,虽然有些第三方,如Cloudflare可以挡,但对于动态网站PHP来说,只能挡一部分。这时候需要对于单个IP恶意攻击做出限流。nginx的两个模块可以限流。
nginx两个限流模块:
连接频率限制,ngx_http_limit_conn_mole:官方文档:https://nginx.org/en/docs/http/ngx_http_limit_conn_mole.html
请求频率限制,ngx_http_limit_req_mole:官方文档:https://nginx.org/en/docs/http/ngx_http_limit_req_mole.html
网上理论很多,根据名字可知:
当然还是看不懂的话,通俗点讲(相对于时间比较):
比如秒杀,抢购,连接频率限制和请求频率限制应该配合使用 , 使用连接频率限制同一IP同时只能有3个连接, 再使用请求频率限制对于同一ip的请求,限制平均速率为5个请求/秒 , 这样比单独只使用一种限制要好很多。
比如只使用请求频率限制 , 可以精确地限制同一ip1秒只能发起5次的http请求 , 假如同一ip1秒内发起了100000次请求 , 虽然限制了只有5次成功响应 , 但是其他的99995次的请求TCP握手建立http连接是不是会消耗服务器资源? 所以还需要配合使用。
1、limit_req_zone,示例:
2、limit_conn_zone,示例:
3、搭配一起使用
1、ab命令
ab是apache自带的压力测试工具。一般不用额外安装,ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
测试命令
2、wrk命令
需自己安装,地址:https://github.com/wg/wrk
安装
测试命令:
还有其他压测工具,自行研究
❷ 如何在CloudFlare下Nginx实现访客真实IP网站日志
做英文内容站套上Cloudflare CDN既可以加快访问速度又可以避免被攻击。可是如果需要通过网站日志分析蜘蛛来访,是否被采集、被攻击等情况,但日志上全部都是CDN(cloudflare)节点的 IP。那么在用CDN加速的同时,如何获取访客真实IP并记录到日志上呢?
查看CloudFlare官方文档《Restoring original visitor IPs: Logging visitor IP addresses》,在这种情况下可以通过nginx的realip模块来获取用户的IP,这里以cloudflare和lnmp一键包为例。
修改lnmp.conf文件,并且升级nginx即可。
在lnmp.conf添加–with-http_realip_mole,如下。
升级nginx
在 http://nginx.org/en/download.html 查看版本,然后输入合适的版本。
等待升级完成即可。
修改网站的配置文件
/usr/local/nginx/conf/nginx.conf
在server后面的http{}中添加如下内容
重载nginx配置生效:
以下是nginx.conf例子文件