proxy_pass使用内置变量报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了proxy_pass使用内置变量报错相关的知识,希望对你有一定的参考价值。
参考技术A 前两天有同学提到个问题:有一个域名 a.fangle.com 下uri携带指定参数的路由转发到 b.fangle.com 这个域名的app模块下。请求要达到的效果大概是这样的:nginx 配置大概如下:
but 一直502 ,于是我就过来玩了一把。
我们找到error_log
这是因为proxypass使用了nginx变量,会自动做域名反向解析。
解决方法:
重启发现报了一个新错
开启本机的dns服务后:
当然你可能会说,我能不能不要resolve。我看你就是想为难我胖虎。
其实也是可以的,proxy_pass 如果不指定uri的时候,nginx会自动带上当前的uri
但是这个地址reqest_uri不是我们想要的,so我们还是要重写以下uri才能使用
放弃这种想法
nginx内置变量不允许修改
待测试
如果允许域名发生变化,也可以考虑使用return or rewirte
return 是nginx最简单的转发方式
效果:
效果同return
rewrite 和 return 没有本质上的区别,当然这种情况常用return,因为语义更清晰。rewirte 常用于url重写,就是server内部跳转,效率更高
以上是关于proxy_pass使用内置变量报错的主要内容,如果未能解决你的问题,请参考以下文章