nginx做反向代理proxy_pass,proxy_redirect的使用
2014-07-01 15:16
471 查看
今天用nginx作为trac的反代,发现一个问题,就是登入登出跳转的时候是白页,看了下网页相应内容,发现相应的location是空的。查了一下发现是只单纯用了proxy_pass,没有使用proxy_redirect.
假设前端url是example.com。后端server域名是csdn123.com,那么后端server在返回refresh或location
的时候,host为csdn123.com,显然这个信息直接返回给客户端是不行的,需要nginx做转换,这时可以设置:
proxy_redirect http://csdn123.com /
nginx会将host及port部分替换成自身的server_name及listen port。不过这种配置对server_name有多个值的情况下支持不好。
我们可以用nginx内部变量来解决这一问题:
proxy_redirect http://csdn123.com http://$host:$server_port
搞定
如果不设定的话,proxy_redirect默认是default属性,官网例子是这样介绍default的:
引用
location /one/ {
proxy_pass http://csdn123:port/two/; proxy_redirect default;
}
location /one/ {
proxy_pass http://csdn123:port/two/; proxy_redirect http://csdn123:port/two/ /one/;
}
我试了下,location /{}规则时似乎不太正常,会导致location为空。这个有待详细考证
假设前端url是example.com。后端server域名是csdn123.com,那么后端server在返回refresh或location
的时候,host为csdn123.com,显然这个信息直接返回给客户端是不行的,需要nginx做转换,这时可以设置:
proxy_redirect http://csdn123.com /
nginx会将host及port部分替换成自身的server_name及listen port。不过这种配置对server_name有多个值的情况下支持不好。
我们可以用nginx内部变量来解决这一问题:
proxy_redirect http://csdn123.com http://$host:$server_port
搞定
如果不设定的话,proxy_redirect默认是default属性,官网例子是这样介绍default的:
引用
location /one/ {
proxy_pass http://csdn123:port/two/; proxy_redirect default;
}
location /one/ {
proxy_pass http://csdn123:port/two/; proxy_redirect http://csdn123:port/two/ /one/;
}
我试了下,location /{}规则时似乎不太正常,会导致location为空。这个有待详细考证
相关文章推荐
- nginx做反向代理proxy_pass,proxy_redirect的使用
- nginx location if 中使用proxy_pass
- 解决nginx使用proxy_pass反向代理时,session丢失的问题
- nginx使用proxy_pass反向代理时cookie丢失问题解决方案
- 解决nginx使用proxy_pass反向代理时,cookie丢失的问题
- 记一次nginx中proxy_pass的使用问题
- 解决nginx使用proxy_pass反向代理时,cookie丢失的问题
- nginx使用proxy_pass反向代理时,session丢失的问题
- Nginx 常用配置总结(root , alias,rewrite , proxy_pass ,if和内置变量,upstream 的使用)
- 解决nginx使用proxy_pass反向代理时,session丢失的问题
- nginx在使用proxy_pass的情况下开启error_page
- 使用Nginx的proxy_cache缓存功能取代Squid
- nginx之proxy模块使用
- Nginx不同域名反向代理到另一台服务器 proxy_pass和$host
- Nginx配置proxy_pass的/路径问题
- nginx 的proxy_pass 基本设置问题
- nginx 代理 proxy_pass设置
- nginx 的proxy_pass 基本设置问题
- nginx ssl http auth proxy pass howto
- Nginx proxy pass简单用法