欢迎来到我的博客,这里关注汽车研发、Bo-blog博客、域名网站等专业内容!如果你喜欢我的博客,请将本站“加入收藏”,有空多来看看!

最近开始发现一些站点的信息页面上写的是nginx。我一直以为这只是某个性化编译的Apache版本而已。不料,几年不碰IT界的我,这回错了。

nginx是俄罗斯人编写的十分轻量级的HTTP服务器,nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev在建立的项目时,使用基于BSD许可。据说他当初是F5的成员之一,英文主页:http://nginx.net

俄罗斯的一些大网站已经使用它超过两年多了,一直表现不凡,相信想了解nginx的朋友都读过阿叶大哥的利用nginx实现负载均衡。直到2007年4月,俄罗斯大约有20%左右的虚拟主机是由nignx服务或代理的。Google在线安全博客中统计nginx服务或代理了大约所有Internet虚拟主机的 4%。而NetCraft的统计显示,nginx服务的主机在过去的一年里以四倍的速度增长。短短的几年里,它的排名已跃进第9。(参见: http://survey.netcraft.com/Reports/200707/ )

Apahce是个很NB的WWW服务器,其下的Mod_Rewrite更是一个异常NB的模块。

今天谈一下Mod_Rewrite的强大功能之一——.htaccess防盗链功能。

比如你有一个网站,拥有spyrise.com,spyrise.cn,spyrise.org三个域名。为了达到图片防盗链的目的,可以在根目录下面建一个.htaccess文件,内容如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !spyrise.com [NC]
RewriteCond %{HTTP_REFERER} !spyrise.cn [NC]
RewriteCond %{HTTP_REFERER} !spyrise.org [NC]


RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /error.gif [R,NC,L]

RewriteRule ^(.*)$ http:\/\/image.spyrise.cn\/image\/$1 [L]

蓝色部分,是判断是否盗链。如果以上条件都成立(即访问图片的请求,既不是直接输入网址,也不是来自spyrise.com,也不是来自spyrise.cn,也不是来自spyrise.org的话),就执行下列转向。

红色部分,是让所有盗链 img 目录下 jpg、gif、png、bmp、swf、jpeg 文件的网页,显示的图片都用根目录下的 error.gif 图片替换掉。注意替换显示的图片不要放在设置防盗链的 img 目录下。如果照上面的规则判断出图片请求不是盗链的,就执行以下转向。

绿色部分,是对 img 目录下所有的请求都转向到目标服务器,比如有个图片原来的 url 是 http://www.spyrise.org/img/girl.jpg ,现在就会转到 http://image.spyrise.org/image/girl.jpg 去。当然了你得先把原服务器 img 目录下的文件统统拷贝到临时服务器的 image 目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受了。

但要注意Mod_Rewrite模块会使Apache性能略有下降,不过比起Mod_Rewrite带来的好处,这点也不算什么了,呵呵。

分页: 1/3 第一页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]