django - 从 https 重定向到 https 不起作用。找不到服务器,nginx

标签 django http nginx https gunicorn

我试图在 https 而不是 http 上运行网站,因此创建了一个重定向。目前网站在 https 地址工作。如果我输入 http 地址,则会重定向到 https,但它说找不到服务器。我究竟做错了什么?评论是我也尝试过的。我真的不明白为什么 server_name 在第二个配置中是 _(有效),因为它是 VPS 上预装的图像配置

        upstream app_server {
        server unix:/home/django/gunicorn.socket fail_timeout=0;
    }

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        return 301 https://$host$request_uri;
        #listen 80;
        #server_name solomon;
        #return 301 https://closer.com$request_uri;

        #server_name solomon;
        #listen 80;
        #return 301 https://closer.com;
    }

    server {
        #listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;

        listen 443;

        ssl on;
        ssl_certificate /etc/ssl/simple_academy_cert_chain.crt;
        ssl_certificate_key /etc/ssl/server.key;

        root /usr/share/nginx/html;
        index index.html index.htm;

        client_max_body_size 4G;
        server_name _;

        keepalive_timeout 5;

        # Your Django project's media files - amend as required
        location /media  {
            alias /home/django/django_project/django_project/media;
        }

  # your Django project's static files - amend as required
    location /static {
        alias /home/django/django_project/static;
    }

    # Proxy the static assests for the Django Admin panel
    location /static/admin {
       alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;
    }

    location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header Host $host;
            proxy_redirect off;
            proxy_buffering off;

            proxy_pass http://app_server;
    }

}

最佳答案

这是我在服务器上处理它的方式:

server {
    listen      80;
    server_name mysite.com www.mysite.com;
    return 301 https://$server_name$request_uri;
}

所有 HTTP 流量都被重定向到 HTTPS。

关于django - 从 https 重定向到 https 不起作用。找不到服务器,nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41996392/

相关文章:

python - 如何将 Django .html 指向 S3 媒体文件?拒绝访问

django - 将现有 django 应用程序与 django-cms 集成

java - 使用 Java 进行 HTTP 请求 - 雅虎

javascript - 为什么浏览器允许设置一些没有 CORS 的 header ,但不允许设置其他 header ?试图避免预检

apache basic_authentication 异常

python - 用于过滤空类别的上下文处理器

python - 如何检索分配给 Django 中的组的所有权限

nginx - 在浏览器中检测 HTTP2/SPDY 支持

ruby-on-rails - Rails3 和 NginX CORS header

nginx - 如何确定 GCP 负载平衡器使用的 IP 范围