首页 / 运用配置 / 基于http-x-forward的nginx并发限制与拦截屏蔽

基于http-x-forward的nginx并发限制与拦截屏蔽

2022-07-06 16:22:08运用配置 阅读 2469
网站经常被扫描工具,列表爬虫,导致服务器性能开销很大,有些恶意的刷网站,经常导致服务器负载过高。
因为使用了CDN加速,以前基于IP地址的频率限制,拦截,防火墙拦截都无效了。
必须使用基于http-x-forward这类CDN转发过的原始IP字段做工作才行。

(1)基于日志分析做拦截

filename=/home/public_html/logs/xxxx_`date '+%Y_%m_%d'`_access.log
echo $filename
iplist=`cat $filename |grep -v mytest.php | awk -F '"' '{print $4}' | sort | uniq -c | sort -nr -k1 |  awk '{if ($1>30)print $2}'`
echo "" > /usr/local/nginx/conf/block_tmp.conf
for ip in $iplist
do
    if [ $ip != "-" -a $ip != "127.0.0.1" ]
    then
           echo 'if ($http_x_forwarded_for = '$ip'){ return 504; }' >> /usr/local/nginx/conf/block_tmp.conf
    fi
done
cat /usr/local/nginx/conf/block_tmp.conf > /usr/local/nginx/conf/block.conf
service nginx reload

#(1.1)日志格式
log_format  access '$http_host $remote_addr [$time_local] $request $status $body_bytes_sent $http_referer "$http_user_agent" "$http_x_forwarded_for" $upstream_response_time';

#技术点:
 $ip != "-" ,是因为通过DNS让蜘蛛直接解析到服务器,所以http_x_forwarded_for一定是空的,刚好区分出用户与蜘蛛,避免拦截了蜘蛛。

#然后在server中include  /usr/local/nginx/conf/block.conf即可。


(2)基于http_x_forwarded_for频率限制

#http段 
limit_req_zone  $http_x_forwarded_for zone=req_xf:16m rate=3r/s;
#server段
limit_req zone=req_xf burst=1 nodelay;

#同样,因为通过DNS让蜘蛛直接解析到服务器,http_x_forwarded_for 为空不会受频次限制。

本文《基于http-x-forward的nginx并发限制与拦截屏蔽》由爱思考吧 isres.com 分享,转载请注明出处。本文网址:https://www.isres.com/peizhi/21.html

本站主要收集测评能够节省时间和提升效率的软件工具并分享使用与学习的过程和感受,任何情况下用户都需遵守所使用软件资源的相关协议。与《基于http-x-forward的nginx并发限制与拦截屏蔽》有关的本站文章及资源仅供个人学习交流使用,相关资源请下载后24小时内删除,请勿用于其它用途,因此产生的任何问题由您自行承担。

猜你喜欢

  • 用haporxy端口转发给kvm虚拟机,实现一个公网IP对多个kvm虚拟机的访问

    HAProxy 是一款高性能的负载均衡器和代理服务器,可以用于端口转发和负载均衡。按照以下步骤操作: 安装 HAProxy: yum install haproxy 编辑 /etc/haproxy/h...

    2023-04-20 16:34:24 1609
  • Linux免密登录配置

    本地生成公钥 ssh-keygen -t rsa #按三次回车完成 cat /root/.ssh/id_rsa.pub #看到自己机器的公钥内容 线上 vi /etc/ssh/sshd_config...

    2018-07-02 14:50:56 2574
  • Dell R720 R420 快速服务代码和服务编号大全

    Dell查个资料,下个驱动都要输入服务代码或产品编号。 有时候没在机器边就记不住。 DELL R720 产品服务编号: BKZCS12 快速服务代码: 25213311974 Dell R420 快速...

    2020-08-07 15:44:36 9626
  • 简单三步实现Linux下mysql数据库定时备份

    Linux下实现mysql数据库定时备份,只需要掌握这简单的三步即可。 1、你必须登录数据库创建一个用于备份的帐号密码,可以给大权限也可以细化。 #创建用户和密码 CREATE USER 'back...

    2023-04-25 00:28:17 1094
  • 源格式转换 txt转m3u 在线工具及源码

    源格式转换 txt转m3u 在线工具及源码

    一般txt转m3u指的是不同播放器的源格式转换,而txt和m3u是两种流行的格式。 一般txt格式如下: 节目名称,节目URL 一般m3u格式如下: EXTINF:-1,节目名称 节目URL 有些节...

    2024-03-07 01:21:46 5609
  • 让linux的history记录时间 ip 用户等

    修改一下,使这个日志能记录 时间 ip 用户等。 vim /etc/profile 追加 USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed...

    2017-12-07 14:37:31 2772
  • Stable Diffusion的easynegative插件

    Stable Diffusion的easynegative插件

    有时候看到很多画图的负向词中会有“easynegative”这个单词,这是一个通用的负面模型,把一些常用的不需要AI画的东西全部集成进来了,除非你的负向词面面俱到,不然这个插件还是很有用的。 这是使...

    2023-05-08 09:23:45 4577
  • 使用linux ssh命令在公司内网搭一个自动维护的socks5

    使用linux ssh命令在公司内网搭一个自动维护的socks5

            公司做百度推广需要切换不同省市的网络查看推广展示效果,为了简化推广专员的切换IP操作难度以及减少网管的维护量,决...

    2023-12-21 08:31:14 1143