[nginx]proxy_pass&rewrite知识点
2014-02-20 17:35
465 查看
While passing request nginx replaces URI part which corresponds to location with one indicated in proxy_pass directive. But there are two exceptions from this rule when it is not possible to determine what to replace: if the location is given by regular expression; if inside proxied location URI is changed by rewrite directive, and this configuration will be used to process request (break): location /name/ { rewrite /name/([^/] +) /users?name=$1 break; proxy_pass http://127.0.0.1; } For these cases of URI it is transferred without the mapping. 注意: 两种情况下不进行代理转换。 1.location 标段使用正则表达式 2.执行代理动作的location段内使用了rewrite指令对location URI进行了修改,并且使用rewrite后的配置发出请求(break)。
A special case is using variables in the proxy_pass statement: The requested URL is not used and you are fully responsible to construct the target URL yourself. This means, the following is not what you want for rewriting into a zope virtual host monster, as it will proxy always to the same URL (within one server specification):
另一种特例是在proxy_pass语句中使用变量:请求的url并没有被使用,你必须自己构造目标url
location / { proxy_pass http://127.0.0.1:8080/VirtualHostBase/https/$server_name:443/some/path/VirtualHostRoot; } Instead use a combination of rewrite and proxy_pass:上面的语句要写成下面的: location / { rewrite ^(.*)$ /VirtualHostBase/https/$server_name:443/some/path/VirtualHostRoot$1 break; proxy_pass http://127.0.0.1:8080; }
rewrite的permanent和redirect重写后的url会在url栏显示,在数据包的层面,添加了location http header
这块东西还是有不少不清楚的地方,继续研究。
相关文章推荐
- LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法
- nginx新手教程
- Nginx 安装成 Windows 服务
- Nginx配置文件详细说明
- Nginx 之 Location基础理解及实战
- nginx报错
- nginx基于htpasswd安全验证
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
- Nginx 日志格式简介
- Ubuntu 下 nginx , php , mysql 和 golang 的简单安装
- Nginx安装配置
- 安装nginx常见的几个问题
- nginx之如何获取真实客户端ip
- nginx location匹配规则
- [nginx]nginx rewrite规则之last和break
- Nginx 优化 之配置文件
- 让nginx支持.htaccess文件实现伪静态的方法!
- nginx源码剖析
- Linux上Nginx如何添加多个虚拟主机配置
- nginx操作cookie使测试IP不写入access.log