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

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

2022-07-06 16:22:08运用配置 阅读 2528
网站经常被扫描工具,列表爬虫,导致服务器性能开销很大,有些恶意的刷网站,经常导致服务器负载过高。
因为使用了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小时内删除,请勿用于其它用途,因此产生的任何问题由您自行承担。

猜你喜欢

  • mysql运维日常命令大全

    学习不仅需要投入时间和成本,更重要的是通过大量实践来达到精通的境界。在日常工作和学习中,我们需要掌握的技能繁多,因此,首先应该掌握常用技能,再选择一个感兴趣的领域进行深入学习,从而在保证时间效益的同时...

    2023-04-24 23:50:17 1038
  • 创意工坊mod下载方式

    创意工坊mod下载方式

    单机玩游戏,看上一个mod想下载试下。在创意工坊上又是注册又是订阅的,就是找不以下载按钮。 最后找到了这种类似下载器的东西,可以下载到想要的mod。 mark一下, 这个方式不错,适合玩单机的。 h...

    2024-03-10 02:15:54 2450
  • 华为安卓手机访问电脑共享文件,无需安装三方APP

    华为安卓手机访问电脑共享文件,无需安装三方APP

    在电脑上下载了不少电影,以前想在手机看的方法是 1、USB拷贝到手机或用微信文件助手转到手机 2、搭建内网流媒体服务器,把电影放到内网服务器上,通过浏览器访问内网 一直没有买NAS,那玩意贵,以前也...

    2023-07-09 21:38:24 3013
  • 用haporxy端口转发给kvm虚拟机,实现一个公网IP对多个kvm虚拟机的访问

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

    2023-04-20 16:34:24 1665
  • 基于文件的php跨机房session同步方案

    场景: 公司网站接入CDN, CDN有两个回源后端做负载均衡以及故障转移,经过测试,CDN的回源是按权重比例轮询的。 要解决用户session状态在不同后端回源时不丢失,造成重复登录。 解决方案: s...

    2023-04-25 12:12:44 902
  • nginx图片不存在时以200状态码返回默认图片

    这个场景主要是有些图片可能删除了,会在页面是出现叉叉。 可以通过nginx的404方式,设置返回默认图片,优化用户体验。 location ~ \.(jpg|gif|jpeg|png|txt)$ { ...

    2022-10-28 16:24:09 2303
  • 如何在python整合包使用pip安装更多依赖

    如何在python整合包使用pip安装更多依赖

    本次想在GPT-SoVITS-v2-240821整合包中安装一个flask,大致步骤如下 (1)在cmd下切换到 GPT-SoVITS-v2-240821目录中, (2)运行命令 "E:\GPT-S...

    2024-10-10 10:13:44 584
  • 使用acme.sh实现服务器ssl证书自动签发续签

    使用acme.sh实现服务器ssl证书自动签发续签

    工具介绍 acme.sh是一个实现从letsencrypt 自动签发证书,自动更新续签证书的脚本。 大致了解流程之后,使用还是相对简单的。 (1)工具自己生成必要的ssl申请文件,无需干预 (2)设...

    2024-05-24 23:26:39 1513