nginx 防垃圾流量的perl清洗脚本.doc_第1页
nginx 防垃圾流量的perl清洗脚本.doc_第2页
nginx 防垃圾流量的perl清洗脚本.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络资源下载站 / c6j编辑 nginx 防垃圾流量的perl清洗脚本 1、根据nginx的访问日志,根据匹配规则查出来源域名,按照来源域名的在一定时间内的访问量来确定屏蔽对象将下面的脚本放入到系统定时任务中,定时(2-5分钟,可根据具体情况做相应调整)执行。确定一个判断不正常的流量的数量,凡是大于该数量的来源一律清洗。当然这里有可能会有误判,所以在后面将正常的来源地址过滤掉。cat purge_traffic.sh#!/bin/bashif -f /var/log/nginx/www-access.log ; thentail -10000 /var/log/nginx/www-access.log | grep -E cps_site|tracert.php?source | awk -F" if ($4 /http:/)print $4 | awk -F / print $3 | grep -v -E .|.| | sort | uniq -c | sort -nr | head -60 > /tmp/cps_site.logcat /tmp/cps_site.log | awk if( $1 > 100 )print $2 > /tmp/purge_cps.logfi2、nginx中调用的perl脚本,当请求进来时,通过下面的脚本判断Referer地址是否来自上面生成的需要清理的域名。perl判断脚本,当发现来源地址匹配时返回1cat purgetraffic.pmpackage purgeTraffic;use nginx;sub purge my $r = shift;my $ua = $r->header_in("Referer");if(! $ua ) return 0; open(FILES, "/tmp/purge_cps.log") | return 0;cps_file=;close(FILES);foreach (cps_file) my $eachcps = $_;chomp $eachcps;#$r->print($eachcps .| );if ( $ua = m/$eachcps/ ) #return HTTP_NOT_ALLOWED;return 1;return 0;1;_END_3、nginx.conf 中调用perl脚本,符合清洗规则的来源直接返回 404,http .perl_modules /etc/nginx;perl_require purgetraffic.pm;.perl_set $purge purgeTraffic:purge;server server_name ;if ($purge = 1) return 404; #屏蔽垃圾流量.重新加载nginx,完成自动流量清洗还可以稍微修改一下perl脚本,增加一个白名单,减少误判的可能。 以下内容为繁体版 1、根據nginx的訪問日志,根據匹配規則查出來源域名,按照來源域名的在一定時間內的訪問量來確定屏蔽對象將下面的腳本放入到系統定時任務中,定時(2-5分鐘,可根據具體情況做相應調整)執行。確定一個判斷不正常的流量的數量,凡是大於該數量的來源一律清洗。當然這裡有可能會有誤判,所以在後面將正常的來源地址過濾掉。cat purge_traffic.sh#!/bin/bashif -f /var/log/nginx/www-access.log ; thentail -10000 /var/log/nginx/www-access.log | grep -E cps_site|tracert.php?source | awk -F" if ($4 /http:/)print $4 | awk -F / print $3 | grep -v -E .|.| | sort | uniq -c | sort -nr | head -60 > /tmp/cps_site.logcat /tmp/cps_site.log | awk if( $1 > 100 )print $2 > /tmp/purge_cps.logfi2、nginx中調用的perl腳本,當請求進來時,通過下面的腳本判斷Referer地址是否來自上面生成的需要清理的域名。perl判斷腳本,當發現來源地址匹配時返回1cat purgetraffic.pmpackage purgeTraffic;use nginx;sub purge my $r = shift;my $ua = $r->header_in("Referer");if(! $ua ) return 0; open(FILES, "/tmp/purge_cps.log") | return 0;cps_file=;close(FILES);foreach (cps_file) my $eachcps = $_;chomp $eachcps;#$r->print($eachcps .| );if ( $ua = m/$eachcps/ ) #return HTTP_NOT_ALLOWED;return 1;return 0;1;_END_3、nginx.conf 中調用perl腳本,符合清洗規則的來源直接返回 404,http .perl_modules /etc/nginx;perl_require purgetraffic.pm;.perl_set $purge purgeT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论