【问题标题】:Nginx shows only Welcome page after changing server_name from IP adress to domain将服务器名称从 IP 地址更改为域后,Nginx 仅显示欢迎页面
【发布时间】:2021-12-30 14:05:14
【问题描述】:

我使用 Nginx 作为带有 Gunicorn 的 Django 项目的反向代理。

在遵循 Digital Ocean How To Set Up an ASGI Django App 的本教程后,我能够通过 http 浏览器中的服务器 IP 地址访问我的项目。

在下一步中,我遵循了来自 Digital Ocean 的 How To Secure Nginx with Let's Encrypt 教程。现在该网站可以在 IP 地址前添加 http:// 和 https:// 了。

为了将用户自动重定向到 https,我使用了本教程中的代码。5 Steps to deploy Django

结果是 /etc/nginx/sites-available 中的以下文件:

# Force http to https
server {
    listen 80;
    server_name EXAMPLE_IP_ADRESS;
    return 301 https://EXAMPLE_IP_ADRESS$request_uri;
}

server {
    listen 80; # manged by Certbot
    server_name EXAMPLE_IP_ADRESS;

    # serve static files 
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/user/projectdir;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;

    include /etc/letsencrypt/options-ssl-nginx.conf;

    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

重定向到 https 工作正常,所以我假设我根据上一个教程所做的更改是可以的。

在使用EXAMPLE_IP_ADRESS 作为server_name 的测试顺利之后,我已将server_name 更改为我的域,格式为www.example.com

当我在浏览器中键入域时,唯一的结果是 Nginx 欢迎页面。所以连接到服务器是成功的,但是 Nginx 正在加载错误的服务器块。

【问题讨论】:

    标签: django nginx


    【解决方案1】:

    搜索了几个小时后,我发现了这个Question。在这里,ThorSummoner 的答案对我有用。 mauris 在此答案下取消链接启用站点中的默认文件的评论是我需要的命令。

    unlink sites-enabled/default

    (我发布此问答是因为我搜索了几个小时来寻找解决方案,并希望这可以减少其他有同样问题的 Django 项目的人的搜索时间)

    【讨论】:

      猜你喜欢
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-10-13
      • 2018-08-01
      • 2023-04-05
      • 2022-07-31
      • 2012-02-05
      • 1970-01-01
      相关资源
      最近更新 更多