nginx做反向代理proxy_pass,proxy_redirect的使用

今天用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为空。这个有待详细考证


-------------------------------------------------


from: nginx 中文网

Nginx的代理功能太完善了,我们看看proxy_redirect参数的作用。

案例说明:
要做一个html.aslibra.com的域名处理很多网站的html内容,当然是后端的服务器了,目录分析
html.zcom.com/img.aslibra.com/
html.zcom.com/css.aslibra.com/
访问的域名是该目录下的域名,那前端nginx的配置应该类似这样:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值