我試圖為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_name wavera.ru www.wavera.ru; # 由Certbot管理。
return 301 https://$host$request_uri;
listen 443 ssl; # 管理Certbot。
ssl_certificate /etc/letsencrypt/live/www.wavera.ru/fullchain.pem; # 由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; # 由Certbot管理。
}server {
if ($host = wavera.ru) {
return 301 https:/$host$request_uri;
} # 由Certbot管理。
if ($host = www.wavera.ru) {
return 301 https:/$host$request_uri;
} # 由Certbot管理。
listen 80 ;
server_name wavera.ru www.wavera.ru。
return 404; # managed by Certbot.
}
i啟動服務器
python3 manage.py runserver
uj5u.com熱心網友回復:
Runserver僅用于開發目的,你應該運行類似gunicorn的東西來創建一個.sock檔案。
現在,你可以嘗試一下 -
upstream backend {
server localhost:8000;
}
服務器 {
server_name wavera.ru www.wavera.ru;
位置 / {
包括proxy_params。
proxy_pass http://backend
}
}
對于https,嘗試-
server {
server_name wavera.ru www.wavera.ru;
location / {
包括proxy_params。
proxy_pass http://backend
}
listen 443 ssl; # manage by Certbot
ssl_certificate /etc/letsencrypt/live/www.wavera.ru/fullchain.pem。
ssl_certificate_key /etc/letsencrypt/live/www.wavera.ru/privkey.pem。
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由Certbot管理。
}
服務器 {
if ($host = wavera.ru) {
return 301 https:/$host$request_uri;
}
if ($host = www.wavera.ru) {
return 301 https:/$host$request_uri。
}
listen 80 ;
server_name wavera.ru www.wavera.ru。
return 404;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/323515.html
標籤:
