Nginx – 如何修复 “ssl” Directive Is Deprecated, Use “listen … ssl” 错误
将 nginx 更新到较新版本时,我们可能会遇到不推荐使用的配置。 Nginx 使用类似 YAML 的定义格式来创建配置。 这种格式随着时间的推移通过添加、删除或更改关键字而变化。
本篇文章介绍如何修复 nginx 的 “ ‘ssl’ Directive Is Deprecated, Use ‘listen … ssl’ ” 错误。
Deprecation Warning 弃用警告
使用 nginx -t 检查 nginx 配置时,我们可能会看到以下警告消息:
$ sudo nginx -t
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/sites-enabled/futurestud.io:8
nginx: configuration file /etc/nginx/nginx.conf test failed
更新 nginx 后可能会出现此消息。 但是,出现此问题也不必惊慌,我们可以快速修复它!
修复“ssl” Directive Is Deprecated, Use “listen … ssl”
Deprecation Warning 告诉我们要重新配置 SSL 设置。 在 nginx 1.10(及更低版本)中,使用 ssl on;
来配置 SSL。 下面是它的工作原理:
server {
listen 80;
listen 443;
server_name futurestud.io;
ssl on;
}
此设置在 nginx 1.12(及更高版本)中已经更改了。 我们现在需要在与 listen 语句相同的行中配置 SSL。 此外,ssl on;
设置不再可用。 可以删除它。
现在修改配置文件如下
server {
listen 80;
listen 443 ssl;
server_name futurestud.io;
# ssl on;
}
再次检查我们的 nginx 配置来验证它是否已正确配置:
$ sudo nginx -t
最后,我们可以重新加载 nginx 服务从而使更改生效。 本篇文章中所做的维护更改不会改变 nginx 的实际行为。 正在从弃用的功能转移到 nginx 的优化配置选项:
$ sudo service nginx reload
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。