我在不同的nginx(1.15.0)服务器上有两个域( server1 example.com 和 server2 example.net )。我已尝试将 server2 设置为带有 ngx_http_substitutions_filter_module 的反向代理,但是它没有按预期工作。 由于我的配置, subs_filter 指令应将 example.com 替换为 example.net ,但是当我键入 example.net 在浏览器中,它将我重定向到 example.com 。
nginx.conf
Y1
example.net.conf
Y2
replace.conf
http {
//other settings
.....
include /etc/nginx/sites-enabled/*;
upstream example.com {
server example.com;
}
}
好像nginx会忽略 subs_filter 指令。 有人可以解释我如何使用ngx_http_substitutions_filter_module正确替换uri吗?谢谢您的指教!
答案 0 :(得分:0)
问题解决了。 首先,我从 nginx.conf 中删除了上游:
upstream example.com {
server example.com;
}
然后,我在 example.net.conf 中更改了以下几行:
location / {
...
try_files $uri @static;
}
location @static {
...
proxy_pass https://example.com;
...
...
...
proxy_redirect https://example.com https://example.net;
}
除登录表单外,其他所有方法均正常。 Firefox可以正常工作,但是Chrome返回错误422。我想这是因为登录表单可以在javascript上工作。 无论如何感谢所有人!