近日IIS总出问题,实在受不了,就把主站和下载栏目的环境改为Apache了。改完以后,许多问题就来了,比如原来在IIS中的限速、还有防盗链等,都要重新设置,搜索了一下,都整理出来,供大家学习。
先说限速,实现办法只有一种,如下:
Bw_mod可以根据来源IP进行带宽限制。
下载for windows 版本编译好的:http://www.wfuwu.com/down/html/29247.html
1. 安装mod_bw.dll模块
把下载的mod_bw.dll放到 Apache2.xmodules目录中。
2. 修改Apache的配置文件httpd.conf
在 Apache2.xconfhttpd.conf文件中增加:
# 限制网速模块
LoadModule bw_module modules/mod_bw.dll
3. 在虚拟主机中激活bw_module模块
要是对所有的主机都做限制可以在配置文件:Apache2.xconfhttpd.conf中增加:
# 加入速度控制mo
BandWidthModule On
ForceBandWidthModule On
BandWidth all 409600
再说一下防盗链,实现办法有两种:
1.利用Rewrite实现
首先要确认 Apache 的 rewrite module 可用:能够控制 Apache httpd.conf 文件的,打开 httpd.conf,确保有这么一行配置:
LoadModule rewrite_module modules/mod_rewrite.so
然后在找到自己网站对应的
ServerName liehuo.net# 防盗链配置 RewriteEngine OnRewriteCond %{HTTP_REFERER} !^http://liehuo.net/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://liehuo.net$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.wfuwu.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.wfuwu.com$ [NC]RewriteRule .*.(gif|jpg|swf)$ http://www.wfuwu.com/about/nolink.png [R,NC]
防盗链配置的说明:
然后重新启动 apache 服务器即可。
有些用户使用的是虚拟主机,没有服务器的控制权,无法修改 httpd.conf 文件和重启服务器。那么请确认你的虚拟主机支持 .htaccess,将上面的配置写入 .htaccess 文件,放入根目录或图片所在的目录即可:
.htaccess 文件的内容:# 防盗链配置 RewriteEngine OnRewriteCond %{HTTP_REFERER} !^http://liehuo.net/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://liehuo.net$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.wfuwu.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.wfuwu.com$ [NC]RewriteRule .*.(gif|jpg|swf)$ http://www.wfuwu.com/images/nolink.png [R,NC]
注意:
2.修改httpd.conf文件
另一种方式是利用 SetEnvIfNoCase 和 access。具体的代码如下:
SetEnvIfNoCase Referer "^http://liehuo.net" local_ref=1SetEnvIfNoCase Referer "^http://www.wfuwu.com" local_ref=1Order Allow,DenyAllow from env=local_ref
将上述代码,放入前面所讲的 httpd.conf 或 .htaccess 文件即可。
下面是引用木头同学的:
位置一般情况下在 /usr/local/apache/conf/httpd.conf
或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf
添加
- SetEnvIfNoCase Referer "^http://www.ccvita.com" local_ref=1
- SetEnvIfNoCase Referer "^http://ccvita.com" local_ref=1
- <filesmatch ".(txt|doc|mp3|zip|rar|jpg|gif)">
- Order Allow,Deny
- Allow from env=local_ref
- </filesmatch>
其中粗体的是您的网址,如果有多个,就加多行
斜体的是您需要防盗链的文件后缀,中间用|隔开
还一种写法,是用正则的,这种写法在各个版本的apache比较通用。
写法是
- SetEnvIfNoCase Referer "^http://.*.yourdomin.com" local_ref=1
- SetEnvIfNoCase Referer ".*.yourdomin.com" local_ref=1
- <filesmatch ".(txt|doc|mp3|zip|rar|jpg|gif)">
- Order Allow,Deny
- Allow from env=local_ref
- </filesmatch>
其中粗体的部分有一点区别,用正则写法, 符号代表转义,因为.本身在正则中有自己的作用。