我有一个服务器上运行的多个Django项目使用gunicorn和nginx。目前,它们都配置为使用nginx中的服务器伪指令在同一IP地址的唯一端口上运行。所有这些工作正常。Django会话Cookie和多个端口上的站点
...
server {
listen 81;
server_name my.ip.x.x;
... #static hosting and reverse proxy to site1
}
server {
listen 84;
server_name my.ip.x.x;
... #static hosting and reverse proxy to site2
}
...
我碰到一个问题就来了,当我不得不在2个选项卡中打开2个不同的项目,我意识到我不能同时登录这两个网站(包括使用内置在Django用户模型和AUTH)。在检查保存在我的浏览器中的cookie后,我意识到cookie只绑定了域名(在我的情况下只是一个ip地址),并且不包含端口。
在第二现场,我试图改变SESSION_COOKIE_NAME annd SESSION_COOKIE_DOMAIN,但它似乎并没有工作并与这些当前设置我甚至无法登录。
SESSION_COOKIE_DOMAIN = 'my.ip.x.x:84' #solution is to leave this as default
SESSION_COOKIE_NAME = 'site2' #just using this works
SESSION_COOKIE_PATH = '/' #solution is to leave this as default
#site1 is using all default values for these
我需要做什么来为两个独立工作的网站获取cookies吗?
这是我第一次尝试。它不起作用。但是,当然,在你推荐它之后,我再试一次它可以工作......谢谢!另外,我认为一旦我们获得内部DNS设置(所有这些网站都是内部使用应用程序),这个问题就会得到解决。 –