标签归档:Nginx

Nginx URL Rewrite – URL 转发规则

Nginx(engine x)是由Igor Sysoev主导设计和实现的高性能的web服务器和邮件代理服务器,目前它已经成为代替在web服务器市场遥遥领先的apache服务器的首选替代品. 随着越来越多的大型站点的加入(大房注:国内有新浪、网易、六间房、豆瓣等,国外有wordpress等)Nginx的市场份额在稳步和飞快的提升。 在这片文章里,我们会主要关注一下Nginx的配置以及虚拟目录的配置方面的内容。 说明:通过虚拟目录,你可以使用一个独立IP建立多个web站点,每个web站点拥有自己独立的.htaccess(假设你已经很熟悉Aapache)文件和独立的目录等。 例如,你可以拥有一个使用wordpress搭建的博客站点,同时你也可以拥有一个MODx系统,或者phpBB。使用Nginx,你将不再能享受.htaccess文件带来的好处,所有这些位于.htaccess文件里的配置都需要转移至Nginx的配置文件去。 Nginx在URL转发上面还是有一些限制,例如你不可以像使用apache的rewrite规则一样对同一个URL应用多条条件转发规则。 但是,Nginx支持if语句 ,这样,你可以将一些转发规则写到if语句里。同样,Nginx的if语句自身也有一定的限制,例如,它不支持“and”和“or”操作,也不可以if语句里嵌套if语句,也没有else语句。但是,你却可以使用正则表达式: if ($request_method !~ ^(GET|HEAD)$ ) {#如果请求的方法不是GET或者HEAD,则返回501错误 return 501; } 注意,你不可以在if语句里同时判断两个参数(例如:if ($request_method !~ ^(GET)$ || $request_method !~ ^(HEAD)$))但是,稍微思考一下,我们还是有更好的办法弥补这种不足来满足特定的需求 ,举个例子来说,一个非常常见的.htaccess定义的转发规则可能如下: RewriteEngine On #开启转发功能 RewriteBase / #转发的基目录 RewriteCond %{REQUEST_FILENAME} !-f #转发条件,如果请求的文件不存在 RewriteCond %{REQUEST_FILENAME} … 继续阅读

发表在 Linux | 标签为 , | 一条评论

网站更换到Nginx服务器

换空间了,在新系统上尝试一个月,看看效果怎么样。周末一直在折腾这个鬼服务器,装好Centos以后开始装服务器,想想还是试试传说中的Nginx吧,然后开始找Nginx的资料,下载,装,配置,然后下载PHP, 找fast cgi的模块,装MySQL… 结果网站一两天非常不稳定,先是打不开,后是崩溃… 昨天晚上把数据库导入到新系统,把代码部署上去,早晨看看,哇,好了.但是好景不长,到公司加班闲来测测网站速度,发现一只time out,网站开都开不了,还不断收到系统预警的邮件,崩溃,后来把参数调下了一些,才稳定下来。。。 具体安装可参考“回忆未来”中的介绍,也可以下载参考。  

发表在 MySQL, PHP, Web | 标签为 , , | 2 条评论