我需要更新我的 nginx 配置,以将一些重定向添加到 2 个类似的服务器(PABX 服务器)。在内部,它们都可以在https://内部_FQDN/。
所以,现在我需要通过反向代理访问它们。
由于服务器具有相同类型的 URL,我必须确定一种方法来确定需要哪个服务器。
首先,我想到了一些类似添加关键字来区分流量的方法,对于第一台服务器,关键字为“server1”,对于第二台服务器,关键字为“server2”。URL 应该是https://ReverseProxy_FQDN/server1或者https://ReverseProxy_FQDN/server2。
location /server1/ { proxy_pass https://$server1_fqdn/; proxy_redirect https://$server1_fqdn/ https://$RPpublic_name/OXE1; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
但是,它不起作用,我在浏览器的控制台中出现了一些错误:
语法错误:预期表达式,结果为“<”
我还尝试添加“邪恶的如果”:
if ($request_uri ~* "/server1/(.*)") { proxy_pass https://$server1_fqdn/$1; }
这次,我可以转到 server1 的登录页面,但有些图片没有加载,它会尝试转到 /assets/theme/img/sprite.svg。关键字“server1”没有出现,因此 RP 无法很好地处理它。(从外部来看,加载这些元素的 url 是https://public_fqdn/assets/theme/img/sprite.svg,RP 无法正确重定向:仅当 URL 包含此关键字“server1”时才重定向。
如果我尝试登录,也会出现同样的错误,使用的 URL 不会包含关键字“server1”。
为了区分两个服务器,我想在 URL 中使用一些关键字来反向代理,这些关键字不应该包含在重定向到服务器的 URL 中。
谢谢
弗雷德