【发布时间】:2020-03-28 10:38:52
【问题描述】:
我正在尝试在 Jelastic 环境中实施 SSL 协议。 我的设置是:
- 一个节点,带有 Nginx 负载均衡器(+ 公共 ip + 自定义 ssl 证书)和 NodeJS 应用程序服务器。
SSL 设置正在运行,但我想强制使用 HTTPS 而非 HTTP(重定向)。
我尝试修改 nginx.conf 但没有成功。
有什么想法我应该怎么做?
【问题讨论】:
我正在尝试在 Jelastic 环境中实施 SSL 协议。 我的设置是:
SSL 设置正在运行,但我想强制使用 HTTPS 而非 HTTP(重定向)。
我尝试修改 nginx.conf 但没有成功。
有什么想法我应该怎么做?
【问题讨论】:
创建配置文件 /etc/nginx/conf.d/nginx_force_https.conf 并添加以下行:
server {
listen 80;
server_name _;
return 301 https://$host$request_uri;
}
它将所有已配置的站点重定向到 https。
如果您只想要确切的站点 example.com:
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
确保您在 /etc/nginx/nginx.conf 中启用了这些包含
include /etc/nginx/nginx-jelastic.conf;
在 /etc/nginx/nginx-jelastic.conf 中:
include /etc/nginx/conf.d/*.conf;
检查配置中的错误:
sudo service nginx configtest
重新加载配置(这足以使更改“工作”):
sudo service nginx reload
检查是否一切正常。重启整个网络服务器(如果需要):
sudo service nginx restart
详细答案可以看这篇帖子Force www. and https in nginx.conf (SSL)
【讨论】: