gpt4 book ai didi

django - 指向 nginx 服务器中的 https 后,网站没有响应

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:02 24 4
gpt4 key购买 nike

我在 django 框架中有一个 web 应用程序,我已经设置了一个 nginx 服务器来为该站点提供服务。我还在站点中设置了 SSL。该网站在 http 和 https 上都能正常工作。

现在我想将所有 http 请求定向到 https,以便我的用户始终使用安全版本。

这是我的 nginx 配置:

server {
listen 80;
listen 443 ssl;
server_name site.com www.site.com;
ssl_certificate /path/to/SSL;
ssl_certificate_key /path/to/SSL/key;
location = /favicon.ico { access_log off; log_not_found off; }
location /site_media/static/ {
alias /home/user/folder/static/dist/;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/site.sock;
}
}

现在,当我插入 301 重定向到 https 并重新启动服务器时,该站点没有响应。

return         301 https://$server_name$request_uri;

进入我的

server { ... }

任何想法如何解决这个问题,任何建议将不胜感激。

最佳答案

将未 protected return 语句放入服务器 block 将尝试重定向 httphttps 站点,从而导致循环。您可以将 return 语句放在 if block 中并检测协议(protocol)何时不是 https,或者更常见的解决方案是将配置拆分到两个 server block ,例如:

server {
listen 80;
server_name site.com www.site.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name site.com www.site.com;
ssl_certificate /path/to/SSL;
ssl_certificate_key /path/to/SSL/key;
location = /favicon.ico { access_log off; log_not_found off; }
location /site_media/static/ {
alias /home/user/folder/static/dist/;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/site.sock;
}
}

关于django - 指向 nginx 服务器中的 https 后,网站没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com