升级nginx1.24.0报[warn] protocol options redefined for 0.0.0.0:443
网友的解决方案
来源https://blog.whsir.com/post-7151.html
最近nginx发布了1.24.0最新稳定版,我这里使用的nginx是通过wlnmp一键安装包安装的,但是nginx升级到1.24.0后,会发现nginx -t或是重启nginx时会报nginx: [warn] protocol options redefined for 0.0.0.0:443 in /usr/local/nginx/conf/vhost/xx.conf:x警告。
虽然这个警告,并不影响我们正常使用,但是不修复看着还是有些担心。
这是由于在nginx1.24.0中的listen 443 ssl;没有设置http2,所以需要在所有443的配置文件中增加http2。
请检查你的nginx所有配置文件,对以下字段进行修改
1 | listen 443 ssl default_server; |
修改后的内容如下
1 | listen 443 ssl http2 default_server; |
如果你还报了以下IPv6警告内容
1 | nginx: [warn] protocol options redefined for [::]:443 |
则还需要增加以下字段
1 | listen [::]:443 ssl http2 default_server; |
还有这样说的https://zhuanlan.zhihu.com/p/641041516
这个是ubuntu的nginx执行nginx -t检查配置提示的错误,提示有点奇怪,因为提示的是其它配置文件,其实这个错误要全部虚拟主机网站配置文件都加上 listen 443 http2 ssl 这样的才能解决
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 default_server http2 ssl;
listen [::]:443 default_server http2 ssl;
还有这样说的https://blog.51cto.com/u_13938111/6782913
近期生产环境因为安全问题升级了nginx升级到nginx1.24版本,升级完成后 reload 出现了nginx: [warn] protocol options redefined for 0.0.0.0:443警告信息,在网上查阅了一些文章解决思路各异,但是都无法解决我的问题,于是我查阅了一下官方文档解决了这个问题,在此做一个记录,也希望可以帮助更多的人。
官网地址: http://nginx.org/en/CHANGES-1.24
根据官网介绍
更改:现在默认启用 TLSv1.3 协议。
*)更改:现在,如果重新定义侦听套接字的协议参数,nginx 会发出警告。
1.
2.
所以在我们配置 nginx 的ssl时候需要新增TLSv1.3 协议。具体配置如下:
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
在 ssl_protocols 结尾增加 TLSv1.3协议即可,重新 reload 问题解决了,希望本篇文章如果你也遇到了同样的问题不妨试试也许可以帮到你。
朕要说几句
http2 tlsv1.3 这些朕的配置里都有
问题依旧 所以这几个方案仅仅是一个参考的方案 并不适用于所有情况
目前问题依旧 朕尝试 降低版本 按照1.22尝试
无奈有出现 nginx: configuration file /www/server/nginx/conf/nginx.conf test failed的错误
具体看
nginx 1.22 错误 nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
这个最根本的解决办法 就是重装系统 重装nginx 当然比较费事 也可按上面的链接 暂时换成1.21版本 可完美解决