V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
find456789
V2EX  ›  问与答

单个域名,反向代理了多个不同网站,如何管理 cookies 混乱的问题?

  •  
  •   find456789 · 2019-01-11 14:56:57 +08:00 · 1470 次点击
    这是一个创建于 2175 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有个域名 xxx.cc

    用 caddy (类似 nginx 的 web 服务器) 反向代理了几个网站 a.com b.com c.com

    我希望 当我访问 xxx.cc/a 就反向代理 a.com , 当我访问 xxx.cc/b 就反向代理 b.com

    目前我实现了这个功能, 但是当我实际使用的时候,我发现 cookies 会互相冲突

    这几个网站,部分 cookie name 是一样的

    当我访问 xxx.cc/a 登陆了自己的账号后, 完成了我的操作, 这时候我访问 xxx.cc/b 登陆 b 网站的账号后

    再访问 xxx.cc/a, 发现 a 的账号已经退出了, 因为 对应 cookies 被 b 网站给覆盖了

    所以我想到了一个可行的办法, 就是 让 a 网站的 cookie 作用域为 /a, b 网站 cookie 的作用域为 /b

    但是我不知道如何在 caddy ( nginx )中操作

    我在网上搜了很久, 也没有找到解决的办法

    所以来这里求助大家

    求大神指点

    5 条回复    2024-11-04 11:14:49 +08:00
    find456789
        1
    find456789  
    OP
       2019-01-11 15:40:12 +08:00
    自己回答

    nginx 可以用 proxy_cookie_path 实现这个

    点赞 👍
    bluehr
        2
    bluehr  
       2020-07-31 19:09:33 +08:00
    楼主能给个 demo 吗,我配置了几个小时了就是不生效, 反代的几个应用 cookie 都是 /路径,会导致 cookie 覆盖的问题
    case 如下,如能帮忙看看,不胜感激!
    ```
    location /p1/{
    #proxy_set_header Cookie $http_cookie;
    #proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header Host 192.168.100.51:18080;
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #proxy_pass_request_headers on;
    proxy_pass http://192.168.100.51:18080/;
    proxy_cookie_path / /p1/;
    }
    location /p2/{
    proxy_set_header Cookie $http_cookie;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host 192.168.100.50:18080;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #proxy_pass_request_headers on;
    proxy_pass http://192.168.100.50:18080/;
    proxy_cookie_path / /p2/;
    }
    ```
    find456789
        3
    find456789  
    OP
       2020-08-01 00:24:37 +08:00
    @bluehr

    你好,我后来发现自己搞不定,所以就没有弄了 。

    现在我的项目是分配在不同域名下的, 也就不会有这个问题了, 也就没有深入研究了
    bluehr
        4
    bluehr  
       2020-08-01 16:36:00 +08:00
    @find456789 哈哈好的,我后来似乎把它给整好了,感谢回复!。
    dongfangyihaolan
        5
    dongfangyihaolan  
       51 天前
    @bluehr 都是人才,弄好了贴一下咋弄的,造福下后面的 XD 啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:53 · PVG 09:53 · LAX 17:53 · JFK 20:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.