我不确定我想要的行为是否真的可以在nginx中实现,但这里是这样的。
我有一台服务器运行在端口81上,配置如下:
CONFIGURATION OF SERVER1 NGINX
server {
listen 81;
server_name SERVER_DNS_NAME;
location /server1 {
proxy_pass http://127.0.0.1:8084/;
proxy_set_header Host $host;
}
location / {
proxy_pass http://127.0.0.1:8084;
proxy_set_header Host $host:$server_port;
}
}
我有另一台服务器在端口82上运行,具有类似的配置。现在,我想要做的是能够从端口80访问它们,只使用不同的uris。
例如: URL/server1将把我带到第一个服务器,URL/server2将把我带到第二个服务器。
CONFIGURATION OF NGINX LISTENING ON PORT 80
server {
listen SERVER_IP:80;
location /server1{
proxy_set_header Host $host;
http://SERVER_IP:81;
}
location /server2 {
proxy_pass http://SERVER_IP:82;
proxy_set_header Host $host;
}
当我转到URL/server1时,它工作得很好。我被成功地路由到server1的主页。然而,只要我点击server1页面上的任何一个链接,我就会得到一个404。这是因为站点尝试转到URL/some_subdir_of_server1 (没有映射),而不是执行URL/server1/some_subdir_of_server1。这个行为是可行的吗?如果是这样的话,是怎么做的?
谢谢!
发布于 2018-12-20 06:00:23
注意尾部的斜杠:在您的示例中,您使用了proxy_pass http://SERVER_IP:81/;
,它会将代理URL设置为根/
https://stackoverflow.com/questions/53859615
复制相似问题