我有一个处理PHP请求的nginx服务器,但它被配置为侦听非标准端口(端口12345或其他东西)。我不能改变监听端口,因为企业IT部门说“不。”
数据中心有一个代理服务器将来自www.domain.com:80的请求转发到端口12345上的nginx框。
我有一些静态301重定向,我需要将其放置到位,但是我遇到了意想不到的行为。
示例重定向到site.conf“server {}”block:
rewrite ^/foo$ /bar/foo/ permanent;
当我尝试访问www.domain.com/foo时,会发生重定向,但会尝试将浏览器转发到www.domain.com:12345/bar/foo /
我的问题是,如何让nginx将用户重定向到正确的端口(www.domain.com/bar/foo /)?
也许更好的问题是,做我要问的正确方法是什么?有50多个重定向需要进入,我宁愿不为每个重定向创建一个“位置”部分。
答案 0 :(得分:2)
您可以提供更明确的重写。请尝试以下方法:
rewrite ^/foo/ $scheme://www.domain.com:80/bar$request_uri permanent;
我认为您打算使用^/foo/
代替^/foo$
,因为^/foo$
是一个非常具体的案例。只需根据需要进行修改。