我使用 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/ /;
}
}