Tôi đang cố gắng thử nghiệm ứng dụng Django của mình tại địa phương bằng SSL. Tôi có một cái nhìn với trang trí @login_required
. Vì vậy, khi tôi nhấn /locker
, tôi được chuyển hướng đến /locker/login?next=/locker
. Điều này làm việc tốt với http.Django @login_required bỏ https
Tuy nhiên, bất cứ khi nào tôi sử dụng https, chuyển hướng bằng cách nào đó giảm các kết nối an toàn, vì vậy tôi có được một cái gì đó giống như https://cumulus.dev/locker -> http://cumulus.dev/locker/login?next=/locker
Nếu tôi đi trực tiếp đến https://cumulus.dev/locker/login?next=locker
trang mở ra tốt hơn một kết nối an toàn. Nhưng khi tôi nhập tên người dùng và mật khẩu, tôi quay lại http://cumulus.dev/locker
.
Tôi đang sử dụng Nginx để xử lý SSL, sau đó trao đổi với runserver
. nginx cấu hình của tôi là
upstream app_server_djangoapp {
server localhost:8000 fail_timeout=0;
}
server {
listen 80;
server_name cumulus.dev;
access_log /var/log/nginx/cumulus-dev-access.log;
error_log /var/log/nginx/cumulus-dev-error.log info;
keepalive_timeout 5;
# path for static files
root /home/gaurav/www/Cumulus/cumulus_lightbox/static;
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_djangoapp;
break;
}
}
}
server {
listen 443;
server_name cumulus.dev;
ssl on;
ssl_certificate /etc/ssl/cacert-cumulus.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
access_log /var/log/nginx/cumulus-dev-access.log;
error_log /var/log/nginx/cumulus-dev-error.log info;
keepalive_timeout 5;
# path for static files
root /home/gaurav/www/Cumulus/cumulus_lightbox/static;
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_djangoapp;
break;
}
}
}
Tôi sẽ nói "Ồ, chỉ cần thay đổi' LOGIN_URL' trong tệp 'settings.py'" ... nhưng tôi đã thử nó không hoạt động. Câu hỏi hay. –