nginx升级报错‘ngx_http_headers_in_t’ has no member named ‘cookies’

问题遇到的现象和发生背景

nginx曝出漏洞,急需升级
编译升级过程报错:
In file included from /usr/include/dlfcn.h:25:0,
from src/os/unix/ngx_linux_config.h:58,
from src/core/ngx_config.h:26,
from /root/aac/nginx-1.23.2/headers-more-nginx-module/src/ddebug.h:5,
from /root/aac/nginx-1.23.2/headers-more-nginx-module/src/ngx_http_headers_more_headers_in.c:10:
/root/aac/nginx-1.23.2/headers-more-nginx-module/src/ngx_http_headers_more_headers_in.c:162:18: error: ‘ngx_http_headers_in_t’ has no member named ‘cookies’

操作环境、软件版本等信息

centos 7.6 nginx原版本 nginx/1.21.1 目标版本 1.23.2

尝试过的解决方法

暂无办法,网上无类似解决办法

我想要达到的结果

成功升级

你的“headers-more-nginx-module”模块的代码应该是以前留存的不是最新的,在nginx 1.23这个版本对你手中的代码不兼容。
解决方案:

  1. 继续使用1.23.2进行编译,你需要去“headers-more-nginx-module”拉去最新的代码,作者最新代码已经修复了这个问题,可以看下面的截图
  2. 继续使用你手中的代码编译,目标版本使用Stable version的版本nginx-1.22.1,因为BUG是1.23.0引入的

你先重新进行编译安装吧?
别覆盖原有的,因为也不需要覆盖原有,需要备份的就配置文件和你的页面文件而已。
而且看报错,说 has no member named ‘cookies’,里面有做什么更改吗?

解题思路:
1、使用可信的第三方RPM包更新Nginx
2、使用官方提供的Nginx源码进行编译并安装

重新进行编译安装

配置文件中设置 NGINX_ONETWOTHREE_COMPAT='y’ 试试

参考这个
https://community.centminmod.com/threads/nginx-1-23-1-upgrade-failure.23105/

可以考虑docker配置nginx

Docker实战:Docker安装nginx并配置SSL_IT技术分享社区的博客-CSDN博客_docker nginx ssl