我在NGINX反向代理后面运行着三个不同的应用程序。
它们都有一个登录GUI,该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
答案 0 :(得分:0)
指令proxy_cookie_path肯定是解决上述问题的方法。
(我刚刚发现我的cookie不是从服务器端API设置的,而是在客户端设置的。所以问题不在于NGINX配置。)
为了记录:
proxy_cookie_path ~*^/.* /;
如果从服务器端设置cookie,则应该可以解决问题。 有关该指令的更多信息,请参见here。