您的位置:首页 > 运维架构 > Nginx

Nginx rewrite 规则 与 proxy_pass 实现 (持续更新ing.....)

2013-03-26 15:20 316 查看
Nginx rewrite 规则 与 proxy_pass 实现
------------------------------------------------------------------------------------------------------~ 大小写敏感匹配 ~* 大小写不敏感匹配 !~ 大小写敏感不匹配 !~* 大小写不敏感不匹配-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------f 检测文件存在-d 检测目录存在-e 检测文件,目录或者符号链接存在-x 检测文件可执行------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------break – 停止rewrite检测,也就是说当含有break flag的rewrite语句被执行时,该语句就是rewrite的最终结果。last – 停止rewrite检测,但是跟break有本质的不同,last的语句不一定是最终结果。 redirect – 返回302临时重定向,一般用于重定向到完整的URL(包含http:部分) permanent – 返回301永久重定向,一般用于重定向到完整的URL(包含http:部分)------------------------------------------------------------------------------------------------------一些实际例子if($http_host = www.qq.com) { rewrite (.*) http://www.baidu.com$1 permanent; }// 如果请求的url是 www.qq.com 则永久重定向到 www.baidu.com

rewrite ^/([0-9]+).html$ /user/id=$1 last;// 如果 www.qq.com/user/id=123456 则显示为 www.qq.com/123456.html

location ^~ /qq/ { proxy_pass http://www.qq.com/; }//如果请求目录为 /qq/ 则代理到 www.qq.com 如果www.qq.com/qq/ 则代理到 www.qq.com

location ~ ^/data{ deny all; }// 禁止 data 目录下所有文件的请求

if (!-f $request_filename) { break; proxy_pass http://www.qq.com;}// 如果请求的文件名不存在 则代理到 www.qq.com

if (-d $request_filename){ rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;}// 如果请求的目录存在 则自动增加 / 符号

禁止访问 /svn/ git cvs 这几个目录...防止 svn 文件下载··源码泄漏

location ~ .*\.(svn|git|cvs)
{
deny all;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rewrite proxy_pass