我有个域名 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 )中操作
我在网上搜了很久, 也没有找到解决的办法
所以来这里求助大家
求大神指点
1
find456789 OP 自己回答
nginx 可以用 proxy_cookie_path 实现这个 点赞 👍 |
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/; } ``` |
3
find456789 OP |
4
bluehr 2020-08-01 16:36:00 +08:00
@find456789 哈哈好的,我后来似乎把它给整好了,感谢回复!。
|
5
dongfangyihaolan 1 天前
@bluehr 都是人才,弄好了贴一下咋弄的,造福下后面的 XD 啊
|