我是 Nginx 新手,以前从未使用过它。遇到了一个问题,找不到解决方案。这个问题可能被问过很多次,但我找不到答案。
如何针对以下场景配置 Nginx
“my.domain.com/login/” 应代理来自“login.domain.com”的内容
“my.domain.com/admin/” 应代理来自“admin.domain.com”的内容
“my.domain.com/profile/” 应代理来自“profile.domain.com”的内容
login.domain.com 对用户进行身份验证,并将其重定向到 admin.domain.com 或 profile.domain.com
将不胜感激任何帮助或对类似解决方案的参考。
最好的,
答案1
server {
listen [::]:80;
listen 80;
server_name my.domain.com;
location /login/ {
proxy_pass http://login.domain.com/;
}
location /admin/ {
proxy_pass http://admin.domain.com/;
}
location /profile/ {
proxy_pass http://profile.domain.com/;
}
}
听起来你还得添加一堆proxy_redirect
指令,例如:
location /login/ {
proxy_pass http://login.domain.com/;
proxy_redirect http://login.domain.com/ /login/;
proxy_redirect http://admin.domain.com/ /admin/;
proxy_redirect http://profile.domain.com/ /profile/;
}
或者,也许使用正则表达式,如下所示:
location /login/ {
proxy_pass http://login.domain.com/;
proxy_redirect http://([a-z]+).domain.com/ /$1/;
}