nginx 反向代理到子目录

nginx 反向代理到子目录

我使用 nginx 反向代理来访问多个不同的服务器。但是,我发现有一种情况似乎无法正常工作。如何让代理转发到子目录?

我正在尝试做这样的事情:

server {
        listen 80;
        server_name subdomain_1.example.com;
        location / {
            proxy_pass  http://hostname:port/subdir_1;
        }
 }

 server {
        listen 80;
        server_name subdomain_2.example.com;
        location / {
            proxy_pass  http://hostname:port/subdir_2;
        }
 }

理想情况下,我希望用户看到 subdomain1/2,而无需在浏览器中传回 subdir URL。

任何帮助都将不胜感激!谢谢!

答案1

您正在搜索该proxy_redirect功能。请参阅手动的了解详情。

您需要类似的东西 - 取决于后端配置:

server {
    listen 80;
    server_name subdomain_1.example.com;
    location / {
        proxy_pass  http://hostname:port/subdir_1/;
        proxy_redirect http://hostname:port/subdir_1/ /;
    }
}

server {
    listen 80;
    server_name subdomain_2.example.com;
    location / {
        proxy_pass  http://hostname:port/subdir_2/;
        proxy_redirect /subdir_2/ /;
    }
}

相关内容