NGINX反向代理的Cookie路径

时间:2019-03-14 13:05:21

标签: javascript node.js authentication nginx cookies

我在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

1 个答案:

答案 0 :(得分:0)

指令proxy_cookie_path肯定是解决上述问题的方法。

(我刚刚发现我的cookie不是从服务器端API设置的,而是在客户端设置的。所以问题不在于NGINX配置。)

为了记录:

proxy_cookie_path ~*^/.* /;
如果从服务器端设置cookie,则

应该可以解决问题。 有关该指令的更多信息,请参见here