У меня есть несколько проектов Django, работающих на одном сервере, используя gunicorn и nginx. В настоящее время каждый из них настроен на работу на уникальном порту того же IP-адреса, используя директиву сервера в nginx. Все это прекрасно работает.
...
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
Что мне нужно сделать, чтобы получить файлы cookie для обоих сайтов, работающих независимо?