我已经阅读了一大堆手册,但情况并没有改变,在安装 SSL 证书并设置 nginx 服务器后,我进入了循环重定向。有人可以指出错误在哪里:
server {
listen 80;
server_name www.wherefilmed.org wherefilmed.org;
return 301 $scheme://wherefilmed.org$request_uri;
}
server {
listen 443 ssl default_server;
server_name www.wherefilmed.org wherefilmed.org;
ssl_certificate /etc/letsencrypt/live/wherefilmed.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/wherefilmed.org/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
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ugrobug/wherefilmed;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
server {
if ($host = www.wherefilmed.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name www.wherefilmed.org;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = wherefilmed.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name wherefilmed.org;
listen 80;
return 404; # managed by Certbot
}
删除片段:
然而,条件并没有不一致。此服务器块将不包括www.wherefilmed.org以外的主机:
其他服务器块同样不需要条件。并且不要忘记使用命令重新读取配置
nginx -s reload晚上好!使用没有重定向参数的 cerbot 重新创建 letsenscript 证书,因为很可能选择了 1 个参数,即它会影响重定向(在证书中已经规定了 https,因此会发生循环重定向),没有深入研究 nginx 设置的含义。
结果,以下服务器设置有效。