我想知道如何把我的整个Django网站后面的HTTPS。 如果有人试图通过HTTP来,我希望该用户被redirect到HTTPS。 目前,Firefox给我的错误是“Firefox已经检测到服务器正在redirect这个地址的请求,永远不会完成”。
我的设置是:
1.一个带SSL证书的AWS负载均衡器(ELB)ELB有两个监听器:
2.运行nginx / uWSGI的ELB后面有一个EC2实例
nginxconfiguration
server { listen 80; return 301 https://$host$request_uri; } server { listen 443 ssl; set $home /server/env.example.com; client_max_body_size 10m; keepalive_timeout 120; location / { uwsgi_pass uwsgi_main; include uwsgi_params; uwsgi_param SCRIPT_NAME ""; uwsgi_param UWSGI_CHDIR $home/project; uwsgi_param UWSGI_SCRIPT wsgi; uwsgi_param UWSGI_PYHOME $home; } }
uwsgiconfiguration
# file: /etc/init/uwsgi.conf description "uWSGI starter" start on (local-filesystems and runlevel [2345]) stop on runlevel [016] respawn exec /usr/local/sbin/uwsgi \ --uid www-data \ --socket 127.0.0.1:5050 \ --master \ --logto /var/log/uwsgi_main.log \ --logdate \ --optimize 2 \ --processes 8 \ --harakiri 120 \ --vhost \ --no-site \ --post-buffering 262144
3. Django设置文件具有SSL / HTTPS专用的以下设置
SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True
任何想法如何正确设置HTTPS?
谢谢

NGINX设置
server { listen 80; server_name www.example.org; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 1443; server_name www.example.org; }