当前位置: 首页 > news >正文

nginx中shell脚本封锁采集IP地址

本文介绍下,在nginx环境中,使用shell脚本封锁那些采集自己网站内容的IP地址,不错的想法,实现起来也简单,有需要的朋友参考下。

本文主要内容:
封采集网站IP的shell脚本

实现思路:
分析Nginx日志,比如分析最后50000条记录,如果同一个IP访问了1000以上,基本可以肯定这个是有人在采集,当然封之前要判断好,不要连搜索引擎蜘蛛的IP都封了,一定要谨慎。

方法:
第一步:
nginx.conf 最后加上
 

复制代码 代码示例:
include  vhost/blockip.conf; (vhost/blockip.conf的路径按照您的真实路径,自己设定)

第二步: 写分析nginx日志的shell脚本
vi /data/sh/blockip.sh

脚本内容:
 

复制代码 代码示例:
#!/bin/bash
tail -n50000 /data/logs/xxx.log \
| awk '{print $1,$12}' \
|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|360|bing|soso" \
|awk '{print $1}'|sort|uniq -c|sort -rn \
|awk '{if($1>1000)print "deny "$2";"}' > /data/blockip.conf
/root/nginx_reload

保存,退出,运行
#/data/sh/blockip.sh &

如此之后,即可让采集的IP无法访问,达到了封锁恶意采集者 IP地址的目的。

相关文章:

  • Apache和Tomcat限制文件访问或下载
  • Postgresql默认用户名与密码
  • Oracle default SID list
  • Apache服务器禁用TRACE Method防范XSS跨站攻击
  • 网页自适应不同浏览设备的方法
  • 网站降权了魔术收录法帮你恢复收录
  • phpmyadmin加载缓慢的终极解决方法
  • 网页CSS常用英文命名说明
  • linux下mysql命令大全 整理
  • JBoss服务器 /invoker/JMXInvokerServlet/ 接口对外开放
  • IT 圈里经常被读错的词
  • jQuery学习总结(一)
  • 织梦cms安装完成后登录后台出现空白解决办法
  • 逆向学习法
  • 一个Python程序员的进化
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • AHK 中 = 和 == 等比较运算符的用法
  • Git同步原始仓库到Fork仓库中
  • IndexedDB
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript设计模式与开发实践系列之策略模式
  • js中forEach回调同异步问题
  • markdown编辑器简评
  • node 版本过低
  • PV统计优化设计
  • Redux 中间件分析
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 实战|智能家居行业移动应用性能分析
  • 详解移动APP与web APP的区别
  • 智能合约Solidity教程-事件和日志(一)
  • 第二十章:异步和文件I/O.(二十三)
  • 说说我为什么看好Spring Cloud Alibaba
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (南京观海微电子)——I3C协议介绍
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (算法二)滑动窗口
  • (转)大道至简,职场上做人做事做管理
  • **CI中自动类加载的用法总结
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET gRPC 和RESTful简单对比
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET运行机制
  • .net中应用SQL缓存(实例使用)
  • .so文件(linux系统)
  • /var/log/cvslog 太大
  • @ModelAttribute 注解
  • [ JavaScript ] JSON方法