【发布时间】: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 正在加载错误的服务器块。
【问题讨论】: