【发布时间】:2021-09-20 17:59:44
【问题描述】:
我正在尝试为 Django 设置 SSL 证书。我通过本指南设置它:https://www.youtube.com/watch?v=dYdv6pkCufk&ab_channel=TonyTeachesTech,在指南中 django 服务器刚开始使用 SSL,但对我来说不起作用,而是将域从 http 重定向到 https,但不重定向到 django 服务器。我什至不知道该怎么办。我在整个互联网上搜索,一无所获。
这是我的 nginx 配置:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
server_name wavera.ru www.wavera.ru; # managed by Certbot
return 301 https://$host$request_uri;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/www.wavera.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.wavera.ru/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}server {
if ($host = wavera.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = www.wavera.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
server_name wavera.ru www.wavera.ru;
return 404; # managed by Certbot
}
我启动服务器
python3 manage.py runserver
【问题讨论】:
-
所以你的 Django 在 localhost:8000 上运行,在你的 nginx 配置文件中你将请求转发到那个地址?
-
请求的 URL 是 www.wavera.ru/abc/something 并且您的 Django 在 localhost:8000/abc/something 上运行。您还缺少 Nginx 设置中的位置块。