截至目前,我想创建一种方法来通过一个处理80端口上的http请求的主服务器链接网络上的所有服务器。
下面是本地计算机的列表。
http://192.168.68.128
(处理每个应用程序的服务器。)http://192.168.68.129
(将请求代理到其他计算机的服务器。)下面是重定向到本地计算机的路径的列表。
http://home.example.com:80/servers
-> http://192.168.68.128:80/
http://home.example.com:80/code
-> http://192.168.68.128:8080/
这里的问题是,每当应用程序重定向用户时,nginx都不会考虑应用程序的路径。例如:
如果我访问http://home.example.com:80/servers
,并且服务器应用将我重定向到/auth/login
,则该URL不会保持不变。结果网址最终是http://home.example.com:80/auth/login
而不是http://home.example.com:80/servers/auth/login
。当我尝试访问服务器应用程序时,实际结果在浏览器中引发404错误。
这是我到目前为止的代码: 在此示例中,我没有包含代码应用。
server {
listen 80;
server_name 192.168.68.129 home.example.com;
location /servers/ {
proxy_pass http://192.168.68.128:80;
}
}
这是我尝试过的一堆不同的东西:
proxy_redirect
通过使用正则表达式和普通URL来操纵发送给用户的URL。发生了两件事之一,我听不懂,或者得到了意外的结果。这几乎可以正常工作了,但是最终创建了一个重定向的反馈循环,并使URL的长度超出了预期。/auth/login
。从长远来看,他们从来没有结束过工作。感谢您提供的任何帮助。