我在 NGINX 反向代理后面运行三个不同的应用程序。
它们都有一个登录 GUI,使用相同的身份验证 API。身份验证基于 cookie。
我现在的问题是,根据用于登录的 GUI,cookie 的路径设置有所不同。
身份验证 API 实际上将 cookie 路径设置为/,但我假设它是 NGINX 代理,它会根据位置覆盖它。
有没有办法将 cookie 的路径设置为/,无论使用哪种 GUI?
这就是我的 NGINX 配置的样子:
http {
server {
listen 80;
server_name localhost;
location = / {
rewrite / /admin;
}
location /admin/ {
proxy_pass http://localhost:9001/;
}
location /app/ {
proxy_pass http://localhost:3100/;
}
location / {
proxy_pass http://localhost:3000/;
}
}
}
编辑 1: 我尝试添加
proxy_cookie_path ~*^/.* /;
如上所述here ,但这没有帮助。 cookie的路径仍然是/admin或/app
最佳答案
指令 proxy_cookie_path 肯定是所描述问题的解决方案。
(我刚刚发现我的 cookie 不是从服务器端 API 设置的,而是在客户端设置的。所以问题不在于 NGINX 配置。)
郑重声明:
proxy_cookie_path ~*^/.* /;
如果 cookie 是从服务器端设置的,应该可以解决问题。 有关该指令的更多信息,请参阅here .
关于javascript - NGINX 反向代理的 Cookie 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55163316/