SSLを使用してDjangoアプリをローカルでテストしようとしています。@login_required
デコレータでビューがあります。したがって、を押す/locker
と、にリダイレクトされ/locker/login?next=/locker
ます。これはhttpで正常に機能します。
ただし、httpsを使用すると、リダイレクトによって安全な接続が失われるため、次のようになります。https://cumulus.dev/locker -> http://cumulus.dev/locker/login?next=/locker
ページに直接移動するとhttps://cumulus.dev/locker/login?next=locker
、安全な接続を介して正常に開きます。ただし、ユーザー名とパスワードを入力すると、に戻りますhttp://cumulus.dev/locker
。
Nginxを使用してSSLを処理し、SSLはと通信しrunserver
ます。私のnginx設定は
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;
}
}
}