|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的。
先也许说说复杂的布局…前端一个Nginx反向代办署理,后端一个NginxinstanceappforPHP…实践上就是个Discuz,之后面对CC打击都是预警剧本大概走CDN,可是此次打击者不再打流量,而是针对数据库哀求页面举行打击,如search操纵…帖子IDF5等..从日记剖析来看是从3个URL动手打击的,事先利用Nginx婚配$query_string来return503…不外会招致页面不克不及会见,以是想到这么一个折衷的举措。
起首你看一段代办署理哀求的日记:
##经由过程剖析,在后端发明其代办署理会见过去的数据都是两个IP的,默许情形下间接会见猎取实在IP,其IP只要一个,而经由过程手机3G4G上彀则是2个IP,不外有匿名IP的话,到服务器则只要一个IP,这类就不太好判别了...
[root@ipythonconf]#tail-f/var/log/nginx/logs/access.log|grepahtax
120.193.47.34--[26/Sep/2014:23:34:44+0800]"GET/ahtax/index.htmlHTTP/1.0"5031290"-""Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/31.0.1650.63Safari/537.36""10.129.1.254,120.193.47.34"
利用PHP剖析下会见时的_SERVER变量
代码以下[root@ipythonconf]#cat/%path%/self_.php
<?php
if($_SERVER["HTTP_X_FORWARDED_FOR"]!="")
{
$user_ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif($_SERVER["HTTP_X_REAL_IP"]!=""){
$user_ip=$_SERVER["HTTP_X_REAL_IP"];
}else{
$user_ip=$_SERVER["REMOTE_ADDR"];
}
echo$user_ip."<br/>";
foreach($_SERVERas$key=>$value)
echo$key."\t"."$value"."<br/>";
?>
经由过程扫瞄器会见确认相干参数
有了这个特性就很好判别了….
起首必要有一个正则来婚配日记里的两个IP,Nginx正则依附pcre库...
代码以下[root@ipythonconf]#pcretest
PCREversion7.82008-09-05
re>^\d+.\d+.\d+.\d+\W\s\d+.\d+.\d+.\d+$
data>192.168.1.1,1.1.1.1
0:192.168.1.1,1.1.1.1
Nginx设置文件在location$dir中到场前提来婚配http_x_forwarded_for:
#proxy
if($http_x_forwarded_for~^\d+.\d+.\d+.\d+\W\s\d+.\d+.\d+.\d+$){
return503;
}
重载设置后就能够限定利用代办署理IP来会见的网站用户了
</p>
如果你想在以后的生涯中在软件行业工作的话,学习linux是一项基本技能,所以打从你打算学习linux那天起,放弃windows吧!因为它除了能给你带来片刻的娱乐,别无其他; |
|