【问题标题】:Cookie path with NGINX reverse proxy使用 NGINX 反向代理的 Cookie 路径
【发布时间】:2019-08-05 09:28:39
【问题描述】:

我在 NGINX 反向代理后面运行了三个不同的应用程序。

它们都有一个登录 GUI,它使用相同的身份验证 API。身份验证基于 cookie。

我现在的问题是,cookie 的路径设置不同,具体取决于用于登录的 GUI。

身份验证 API 实际上将 cookie-path 设置为 /,但我假设它是 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

【问题讨论】:

    标签: javascript node.js authentication nginx cookies


    【解决方案1】:

    proxy_cookie_path 指令肯定是所描述问题的解决方案。

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

    所以记录一下:

    proxy_cookie_path ~*^/.* /;
    

    如果 cookie 是从服务器端设置的,则应该可以解决问题。 有关该指令的更多信息,请参阅here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2015-12-14
      • 2018-03-24
      • 1970-01-01
      • 2019-05-27
      相关资源
      最近更新 更多