【问题标题】:Redirect from https to https doesn't work. Can't find server, ngnix从 https 重定向到 https 不起作用。找不到服务器,nginx
【发布时间】:2017-06-19 04:20:07
【问题描述】:

我尝试在 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_name 中添加您的域名。 (即 server_name example.com)
  • @GopalRoy 我试过了。现在再次尝试添加到“server_name close.com”并没有帮助
  • run: nginx -t 这个打印任何错误,只是提醒一下,重启nginx服务。
  • @MicroPyramid 我确实做到了。没关系
  • 你能显示确切的错误信息吗?

标签: django http nginx https gunicorn


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-05-16
    • 2022-01-14
    • 1970-01-01
    • 2018-03-27
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 2015-04-15
    相关资源
    最近更新 更多