本文最后更新于 612 天前,其中的信息可能已经有所发展或是发生改变。
Nginx1.20.1平滑升级到Nginx1.24.0遇到的坑
前提
因Nginx1.20.1
存在nginx 缓冲区错误漏洞(CVE-2022-41741)
和nginx 越界写入漏洞(CVE-2022-41742)
漏洞,因此计划升级到Nginx1.24.0,但因为引入了sticky
,升级过程中可能就编译出了几次错误。
升级过程
1.查看当前版本
2.下载最新版
前往查看最新版,http://nginx.org/en/download.html
3.编译
报错1
利用旧版本的编译参数来编译新版本nginx,make
的时候,出现了错误
从报错信息上看,可以看到编译是openssl相关的组件报错了,可能是“–with-openssl=/usr/local/openssl” 这个参数导致。这里提到了/usr/local/openssl/.openssl/include/openssl/ssl.h
这个文件,我尝试去找这个文件,发现文件找不到:(/usr/local/openssl
是我自己安装的openssl)
解决1
发现了问题可能的原因后,尝试修改一下nginx添加openssl模块时候的相关编译信息auto/lib/openssl/conf
:
修改完auto/lib/openssl/conf
的信息之后,重新编译安装nginx
再次出现一个错误,报错信息如下:
报错2
此次报错信息是nginx-sticky-module-1.2.6
的问题,查找了一圈后,需要修改sticky
下的ngx_http_sticky_module.c
代码,找到以下代码进行注释,并且添加一行
修改ngx_http_sticky_misc.c
代码,加入下面的头文件