Tôi có nhiều dự án Django chạy trên một máy chủ sử dụng gunicorn và nginx. Hiện tại chúng được cấu hình để chạy trên một cổng duy nhất của cùng một địa chỉ IP bằng cách sử dụng chỉ thị máy chủ trong nginx. Tất cả điều này hoạt động tốt.Cookie và trang web Django- phiên trên nhiều cổng
...
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
}
...
tôi tình cờ gặp một vấn đề khi tôi đã có 2 dự án khác nhau mở trong 2 tab và tôi nhận ra rằng tôi không thể đăng nhập vào cả hai trang web cùng một lúc (đều sử dụng được xây dựng trong Django mô hình người dùng và auth). Khi kiểm tra các cookie được lưu trong trình duyệt của tôi, tôi nhận ra rằng cookie chỉ được gắn với tên miền (trong trường hợp của tôi chỉ là một địa chỉ IP) và nó không bao gồm cổng.
Trên trang web thứ hai, tôi đã cố gắng thay đổi SESSION_COOKIE_NAME annd SESSION_COOKIE_DOMAIN, nhưng nó dường như không được làm việc và với các thiết lập hiện tại tôi thậm chí không thể đăng nhập.
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
Tôi cần những gì để làm gì để có được cookie cho cả hai trang web hoạt động độc lập?
Đó là điều đầu tiên tôi thử. Và nó không hoạt động. Nhưng tất nhiên, sau khi bạn giới thiệu nó và tôi thử lại nó hoạt động ... Cảm ơn! Ngoài ra, tôi nghĩ rằng vấn đề này sẽ tự khắc phục khi chúng tôi nhận được thiết lập DNS nội bộ (tất cả các trang web này là các ứng dụng sử dụng nội bộ). –