当前位置: 操作系统/服务器>linux
本页文章导读:
▪centos redhat系列对抗ddos之居家必备利器 banip.txt
代码如下: ############################################## #version="20100718" #author="phpsir" #author_email="phpsir@phpsir.com" ############################################## maxnum=50 runmin_max=300 #runmin_max is clear time ipfile="/tmp/80link.........
▪完美解决IIS和APACHE的301重定向(带参数)
在5月份的时候,因为对一个网站改版,导致大量链接失效,正好5月底GOOGLE PR大更新,这个网站的PR直接从3降低到2,并且收录也急剧下滑,可以说网站的大幅度改版是导致本次PR降低的主要.........
▪nginx win32 版本静态文件测试 (Windows环境)
下载了 Nginx For Win32 的官方版本 nginx 0.7.53 进行了试用以及压力测试。 安装使用方式很简单,直接贴官方的方式: Win32 Binaries As of 0.7.52, Nginx is now available as an official Windows binary. Installation: cd.........
[1]centos redhat系列对抗ddos之居家必备利器 banip.txt
来源: 互联网 发布时间: 2013-12-24
代码如下:
##############################################
#version="20100718"
#author="phpsir"
#author_email="phpsir@phpsir.com"
##############################################
maxnum=50
runmin_max=300
#runmin_max is clear time
ipfile="/tmp/80link.txt"
banip_data_file="/root/banip_data.txt"
ipopenfile="/root/openip.txt"
nsfile="/tmp/netstat80.txt"
myip=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .`
if [ ! -f $ipopenfile ]
then
echo "init $ipopenfile"
touch $ipopenfile
fi
if [ -f $banip_data_file ]
then
source $banip_data_file
echo "last runtime=$runtime"
else
echo "init $banip_data_file"
echo 'runtime='`date "+%s"` > $banip_data_file
source $banip_data_file
runmin_max=-1
fi
echo "start shell" `date "+%Y-%m-%d %H:%M:%S"`
runmin=$((`date "+%s"`-$runtime))
if [ $runmin -gt $runmin_max ]
then
echo $runmin "is bigger than " $runmin_max
echo "clear ips"
/sbin/iptables -F
echo 'runtime='`date "+%s"` > $banip_data_file
else
echo $runmin "is lowwer than " $runmin_max
fi
netstat -an | grep "$myip:80" > $nsfile
echo "Total Links = " `cat $nsfile | wc -l `
echo "Total Links ESTABLISHED = " `cat $nsfile | grep ESTABLISHED | wc -l `
echo "Total Links SYNC = " `cat $nsfile | grep SYN | wc -l `
cat $nsfile | awk '{print $5}' | awk -F: '{print $1}' | sort|uniq -c|sort -rn | head -n 10 > $ipfile
cat $ipfile | while read oneline
do
ip=`echo $oneline | cut -d " " -f 2`
num=`echo $oneline | cut -d " " -f 1`
str="$ip has linked $num "
banme="yes"
for allowip in `cat $ipopenfile`
do
echo $ip | grep $allowip > /dev/null
if [ $? -eq 0 ]
then
banme="no"
echo $allowip "banme = " $banme
/sbin/iptables -D INPUT -p tcp -s $ip -d $myip --dport 80 -j REJECT > /dev/null 2>&1
continue
fi
done
if [ $banme = "yes" ]
then
if [ $num -gt "$maxnum" ]
then
/sbin/iptables -L -n | grep "$ip" >/dev/null
status=`echo $?`
if [ $status -eq 1 ]
then
echo "deny $ip ,because $str "
/sbin/iptables -A INPUT -p tcp -s $ip -d $myip --dport 80 -j REJECT
echo "BAN " $ip " OK "
#/sbin/iptables -L -n | grep "$ip"
else
echo > /dev/null
#echo "$str alread reject"
fi
else
echo > /dev/null
#echo "$str $ip ok ,less $maxnum "
fi
fi
done
echo "stop shell" `date "+%Y-%m-%d %H:%M:%S"`
[2]完美解决IIS和APACHE的301重定向(带参数)
来源: 互联网 发布时间: 2013-12-24
在5月份的时候,因为对一个网站改版,导致大量链接失效,正好5月底GOOGLE PR大更新,这个网站的PR直接从3降低到2,并且收录也急剧下滑,可以说网站的大幅度改版是导致本次PR降低的主要因素,后在GOOGLE的网站管理后台也验证了这个结论,于是赶紧使用JAVASCRIPT进行了404跳转定向,从实际的测试效果来看,GOOGLE对404跳转也是支持的,不会惩罚该网站的权值,可是根据IIS日志分析,感觉BAIDU spider对404的重定向似乎无动于衷,于是近日干脆对原失效的链接重新设置301重定向。
一、IIS 301重定向设置
通过本次设置IIS的重定向,感觉还是比较方便的。下面就说一下IIS的重定向方法,因为网站改版是面向目录的迁移的,所以不得不了解以下几个微软的IIS定向参数:
我们在设置URL重定向的时候是可以使用带参数形式URL的,因为毕竟经常面对的URL是很多,要是就那么一两个页面301重定向随便怎么整都可以了。
参数1:$S ——传递URL的后缀到新的URL;
参数2:$P——传递URL 中的query参数到新的URL,不包括问号(?)
参数3:$Q——传递URL中的query参数到新的URL,包括问号(?),,所以在设置URL地址时,后面不要带问号,比如:
将http://www./catalog.asp?cate=os&page=1,重定向到http://www./category.php?cate=1&page=1
只需要在IIS里设置catelog.asp文件设置重定向到 category.php$Q。
参数4:$V——传递请求的URL,但是不包括服务器名和任何参数。
另外还有使用通配符重定向,这里不常用暂时不讲解。
因为我们重定向多个目录,所以,如果单个去设置不同的定向文件,那么IIS设置起来将会非常麻烦,但是如果都定向到一个文件然后再重定向,又会因为$_SERVER['HTTP_REFERER']无法取道对应的引用页面,结果为空,所以不得不采用上面的参数进行传递,这时候只需要加个参数就可以解决引用页面的传递问题,比如/301.php?go=$V,这样就可以直接在php文件中进行URL 301重定向跳转处理了。
示例:
<?php
$url=substr($_GET['go'],1);//去掉最前面的斜杠
$e=explode('/',$url);//分割字符串
//判断并设置新的URL
$newurl='http://www.';
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$newurl);
?>
二、APACHE 301重定向
以上处理是面向IIS的,如果服务器采用APACHE,那么要比起IIS重定向要简单的多,只需要修改.htaccess文件,单独定向即可,当然htaccess文件也是支持正则表达式的,可以根据实际情况使用。
目录重定向示例:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
ErrorDocument 404 /index.html
DirectoryIndex index.html default.html index.php index.htm default.htm
Redirect permanent /abc/ http://www./
Redirect permanent /cde/ http://www./
Redirect permanent /fgh/ http://www./
order deny,allow
这样就可以实现APACHE 的301永久重定向。
全站301重定向示例:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ http://www./$1 [L,R=301]
特别提醒,完成301重定向设置后一定要实际测试一下到底是否正确返回301状态码,附一个测试地址:
http://www.seoconsultants.com/tools/headers.asp
以上地址在输入测试URL之后,会自动跳转到测试结果位置,即时查看页面的返回状态码,非常方便。
一、IIS 301重定向设置
通过本次设置IIS的重定向,感觉还是比较方便的。下面就说一下IIS的重定向方法,因为网站改版是面向目录的迁移的,所以不得不了解以下几个微软的IIS定向参数:
我们在设置URL重定向的时候是可以使用带参数形式URL的,因为毕竟经常面对的URL是很多,要是就那么一两个页面301重定向随便怎么整都可以了。
参数1:$S ——传递URL的后缀到新的URL;
参数2:$P——传递URL 中的query参数到新的URL,不包括问号(?)
参数3:$Q——传递URL中的query参数到新的URL,包括问号(?),,所以在设置URL地址时,后面不要带问号,比如:
将http://www./catalog.asp?cate=os&page=1,重定向到http://www./category.php?cate=1&page=1
只需要在IIS里设置catelog.asp文件设置重定向到 category.php$Q。
参数4:$V——传递请求的URL,但是不包括服务器名和任何参数。
另外还有使用通配符重定向,这里不常用暂时不讲解。
因为我们重定向多个目录,所以,如果单个去设置不同的定向文件,那么IIS设置起来将会非常麻烦,但是如果都定向到一个文件然后再重定向,又会因为$_SERVER['HTTP_REFERER']无法取道对应的引用页面,结果为空,所以不得不采用上面的参数进行传递,这时候只需要加个参数就可以解决引用页面的传递问题,比如/301.php?go=$V,这样就可以直接在php文件中进行URL 301重定向跳转处理了。
示例:
代码如下:
<?php
$url=substr($_GET['go'],1);//去掉最前面的斜杠
$e=explode('/',$url);//分割字符串
//判断并设置新的URL
$newurl='http://www.';
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$newurl);
?>
二、APACHE 301重定向
以上处理是面向IIS的,如果服务器采用APACHE,那么要比起IIS重定向要简单的多,只需要修改.htaccess文件,单独定向即可,当然htaccess文件也是支持正则表达式的,可以根据实际情况使用。
目录重定向示例:
代码如下:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
ErrorDocument 404 /index.html
DirectoryIndex index.html default.html index.php index.htm default.htm
Redirect permanent /abc/ http://www./
Redirect permanent /cde/ http://www./
Redirect permanent /fgh/ http://www./
order deny,allow
这样就可以实现APACHE 的301永久重定向。
全站301重定向示例:
代码如下:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ http://www./$1 [L,R=301]
特别提醒,完成301重定向设置后一定要实际测试一下到底是否正确返回301状态码,附一个测试地址:
http://www.seoconsultants.com/tools/headers.asp
以上地址在输入测试URL之后,会自动跳转到测试结果位置,即时查看页面的返回状态码,非常方便。
[3]nginx win32 版本静态文件测试 (Windows环境)
来源: 互联网 发布时间: 2013-12-24
下载了 Nginx For Win32 的官方版本 nginx 0.7.53
进行了试用以及压力测试。
安装使用方式很简单,直接贴官方的方式:
Win32 Binaries
As of 0.7.52, Nginx is now available as an official Windows binary.
Installation:
cd c:\
unzip nginx-0.7.52.zip
ren nginx-0.7.52 nginx
cd nginx
start nginx
Control:
nginx -s [ stop | quit | reopen | reload ]
For problems look in c:\nginx\logs\error.log or in EventLog.
但要说明一下的,之前有第三方编译的 Nginx For Windows 版本,是可以加载到 Windows 服务中运行的。但在这个官方版本下该方法行不通。所以建议暂时手动启动,或者新建一个计划任务开机启动。
然后迫不及待进行压力测试。我们使用的工具是 Apache 的 ab , 测试的是纯静态页面。就是 Nginx 一装好后默认的 :
Welcome to nginx!
测试命令:./ab -c 100 -n 10000 http://192.168.3.50:8888/
操作系统:Windows server 2003 R2
硬件配置:Xeon 2.8G X2 1G RAM
测试结果:
Server Software: nginx/0.7.53
Server Hostname: 192.168.3.50
Server Port: 8888
Document Path: /
Document Length: 151 bytes
Concurrency Level: 100
Time taken for tests: 107.329 seconds
Complete requests: 10000 (100%处理请求,没有丢失)
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 93.17 [#/sec] (mean) 每秒处理请求 93.17 个
Time per request: 1073.293 [ms] (mean)
Time per request: 10.733 [ms] (mean, across all concurrent requests)
Transfer rate: 32.94 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 13 44.3 2 550
Processing: 180 1059 350.5 1065 2665
Waiting: 178 1053 352.3 1058 2664
Total: 194 1071 351.9 1074 2668
Percentage of the requests served within a certain time (ms)
50% 1074
66% 1162
75% 1215
80% 1288
90% 1547
95% 1694
98% 1853
99% 1946
100% 2668 (longest request)
################
由测试结果所得,Nginx for windows 100 个线程每秒只能处理 93 个请求。
如果再启动多一个 ab 来压,加起来就有200个线程,ab结果相当。各端每秒处理93个请求。
但如果你再启动第三ab 进行 100 个线程压力,正在进行的2个ab 其中一个就会被服务端拒绝。
来回尝试修改Nginx的worker_processes 参数无果,修改了 Win2003 的并发线程也无果….难道 Nginx 在Windows下就只能有这么点能耐??回头要再详细找找原因。
另外还有一个问题,当压力测试完毕了,在 windows 中查看进程会发现 Nginx 还占着 2~30 的cpu。
在命令行下 Nginx -s stop 也无法停止。必须 结束进程…..
################
初步尝试就这几点,希望是我个别的问题,有机会的朋友也不妨试试。
配置 PD930 CPU,2G 内存,测试结果如下:
C:\>ab -n 10000 -c 100 http://192.168.1.8/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.1.8 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: nginx/0.7.52
Server Hostname: 192.168.1.8
Server Port: 80
Document Path: /
Document Length: 151 bytes
Concurrency Level: 100
Time taken for tests: 5.109 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 1957.19 [#/sec] (mean)
Time per request: 51.094 [ms] (mean)
Time per request: 0.511 [ms] (mean, across all concurrent requests)
Transfer rate: 691.90 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.4 0 16
Processing: 16 50 13.3 47 78
Waiting: 0 34 14.4 31 78
Total: 16 51 13.3 47 78
Percentage of the requests served within a certain time (ms)
50% 47
66% 63
75% 63
80% 63
90% 63
95% 63
98% 63
99% 78
100% 78 (longest request)
进行了试用以及压力测试。
安装使用方式很简单,直接贴官方的方式:
Win32 Binaries
As of 0.7.52, Nginx is now available as an official Windows binary.
Installation:
cd c:\
unzip nginx-0.7.52.zip
ren nginx-0.7.52 nginx
cd nginx
start nginx
Control:
nginx -s [ stop | quit | reopen | reload ]
For problems look in c:\nginx\logs\error.log or in EventLog.
但要说明一下的,之前有第三方编译的 Nginx For Windows 版本,是可以加载到 Windows 服务中运行的。但在这个官方版本下该方法行不通。所以建议暂时手动启动,或者新建一个计划任务开机启动。
然后迫不及待进行压力测试。我们使用的工具是 Apache 的 ab , 测试的是纯静态页面。就是 Nginx 一装好后默认的 :
Welcome to nginx!
测试命令:./ab -c 100 -n 10000 http://192.168.3.50:8888/
操作系统:Windows server 2003 R2
硬件配置:Xeon 2.8G X2 1G RAM
测试结果:
Server Software: nginx/0.7.53
Server Hostname: 192.168.3.50
Server Port: 8888
Document Path: /
Document Length: 151 bytes
Concurrency Level: 100
Time taken for tests: 107.329 seconds
Complete requests: 10000 (100%处理请求,没有丢失)
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 93.17 [#/sec] (mean) 每秒处理请求 93.17 个
Time per request: 1073.293 [ms] (mean)
Time per request: 10.733 [ms] (mean, across all concurrent requests)
Transfer rate: 32.94 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 13 44.3 2 550
Processing: 180 1059 350.5 1065 2665
Waiting: 178 1053 352.3 1058 2664
Total: 194 1071 351.9 1074 2668
Percentage of the requests served within a certain time (ms)
50% 1074
66% 1162
75% 1215
80% 1288
90% 1547
95% 1694
98% 1853
99% 1946
100% 2668 (longest request)
################
由测试结果所得,Nginx for windows 100 个线程每秒只能处理 93 个请求。
如果再启动多一个 ab 来压,加起来就有200个线程,ab结果相当。各端每秒处理93个请求。
但如果你再启动第三ab 进行 100 个线程压力,正在进行的2个ab 其中一个就会被服务端拒绝。
来回尝试修改Nginx的worker_processes 参数无果,修改了 Win2003 的并发线程也无果….难道 Nginx 在Windows下就只能有这么点能耐??回头要再详细找找原因。
另外还有一个问题,当压力测试完毕了,在 windows 中查看进程会发现 Nginx 还占着 2~30 的cpu。
在命令行下 Nginx -s stop 也无法停止。必须 结束进程…..
################
初步尝试就这几点,希望是我个别的问题,有机会的朋友也不妨试试。
配置 PD930 CPU,2G 内存,测试结果如下:
C:\>ab -n 10000 -c 100 http://192.168.1.8/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.1.8 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: nginx/0.7.52
Server Hostname: 192.168.1.8
Server Port: 80
Document Path: /
Document Length: 151 bytes
Concurrency Level: 100
Time taken for tests: 5.109 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 1957.19 [#/sec] (mean)
Time per request: 51.094 [ms] (mean)
Time per request: 0.511 [ms] (mean, across all concurrent requests)
Transfer rate: 691.90 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.4 0 16
Processing: 16 50 13.3 47 78
Waiting: 0 34 14.4 31 78
Total: 16 51 13.3 47 78
Percentage of the requests served within a certain time (ms)
50% 47
66% 63
75% 63
80% 63
90% 63
95% 63
98% 63
99% 78
100% 78 (longest request)
最新技术文章: