|
我之前用笔记本装过一个飞牛 OS(后面性能不够就没使用了),想过一个方案,使用 Cookie 来标记当前访问的站点,然后每次根据 Cookie 来判断
server {
listen 80;
server_name example.com;
# 处理 /a 和 /b ,设置 Cookie 并重定向到 /
location = /a {
add_header Set-Cookie "current-site=a; Path=/; HttpOnly; Max-Age=3600";
return 302 /;
}
location = /b {
add_header Set-Cookie "current-site=b; Path=/; HttpOnly";
return 302 /;
}
# 处理 /
location / {
# 根据 Cookie 值选择代理目标
if ($http_cookie ~* "current-site=a") {
proxy_pass http://localhost:3000/;
break;
}
if ($http_cookie ~* "current-site=b") {
proxy_pass http://localhost:4000/;
break;
}
# 如果没有 Cookie ,返回 404
return 404;
}
}
不知道是否可行,不过有一定的副作用,比如不能 a 和 b 同时在一个浏览器中访问,每次访问另一个站点需要先使用路径切换一下,两个站点的路径不能起冲突 |