Nginx以其良好的并发性能,目前 正在逐渐取代Apache成为大家的Web server首 选,但是Nginx目前的中文资料很少,需要大家努力贡献。51Testing软件测试网 t Q C^?w?g4G
下面我介绍一下Nginx的Rewrite模 块设置及Wordpress和Discuz的示例。Nginx的Rewrite规则比Apache的简单灵活多了,从下面介绍可见一斑。
;P%r z T k Y \0首先,Nginx可以用if进行条件匹配,语法规则类似C,举例如下:51Testing 软件测试网 X7s0P/y ~ G
if($http_user_agent~MSIE){ rewrite^(.*)$/msie/$1break; }
1、正则表达式匹 配,其中:
G(u’@1\-p3}d M0
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
2、文件及目录匹配,其中:51Testing软件测试网 g,I X ](V O {:|*v p4V
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判 断文件是否可执行
如:
‘OF7X l E f,[4{0
if(!-f $request_filename){ proxy_pass http://127.0.0.1; }
其次,Nginx 的Rewrite规则与Apache几乎完全一致,所不同的是最后的flag标记,举例如下:51Testing 软件测试网1x n ~ t:^J$d P z
rewrite ^/feed/$ http://feed.shunz.net last;51Testing软件测试网0} o ` Ib s4A8[;N
flag标记有:
f D"d.?-W X B4@0
last 相当于Apache里的[L]标记,表示完成rewrite,不再匹配后面的规则
break 与last类似
redirect 返回302临时重定向
permanent 返回301永久重定向
记住下面几个Nginx的Flags: