我有一个带 Django 的 nginx/gunicorn/supervisor/posrgresql 服务器。我从该服务器提供两个网页,每个网页都有自己的 nginx conf 文件。我已经购买并下载了 SSL 证书,它们在某些情况下可以正常工作。
我的 nginx 配置文件如下所示:
server {
listen 80;
server_name name.org;
return 301 https://www.name.org;
{
server {
listen 80;
listen 443 ssl;
server_name www.name.org;
ssl_certificate...
}
等等。我想要发生的是:
要么
1.) 所有页面的整个网站 https
或
2.) 一个带有 https 的特定子页面,例如https://www.name.org/page ,无论您如何到达那里,name.org/page,https://www.name.org/page 、www.name.org/page、内部链接等。重点是我需要通过 SSL 提供该页面。
目前,name.org 将您带到我的主页 https。 www.name.org 没有。我可以转到我网站上的任何页面,然后在地址栏中输入该页面名称,例如 https://www.name.org/anypage , 它将重新加载绿色锁。
我一直在寻找 stackoverflow、nginx 文档、godaddy(我购买证书的地方)以及我能想到的任何其他地方,搜索了几个小时但找不到任何东西,所以非常欢迎任何帮助。
最佳答案
更改您的第一个 server
block 以包含 www
子域:
server {
listen 80;
server_name name.org www.name.org;
return 301 https://www.name.org;
}
这会将 http://name.org
和 http://www.name.org
重定向到 https://www.name。组织
。完成之后,您可以从第二个 server
block 中删除 listen 80;
,因为第一个包含该名称/端口组合,您将只从那时起处理 ssl 版本。
关于redirect - 特定子页面的 Nginx/Django SSL 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480605/