Nginx 信创版本源码升级 1.22.1 升级到1.28.0
升级前准备
1. 备份原有配置文件和二进制文件
cp -r /usr/local/nginx /usr/local/nginx.bak
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
2. 查看当前编译参数(用于新版本保持一致)
/usr/local/nginx/sbin/nginx -V
输出:
nginx version: nginx/1.22.1
built by gcc 8.3.0 (GCC)
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module ...
记录这些参数,后续编译时使用。
安装依赖(信创平台)
信创平台通常基于国产化软硬件,需使用系统自带的包管理器安装依赖。
适用于统信UOS / 银河麒麟(apt 类系统):
sudo apt update
sudo apt install build-essential gcc g++ make zlib1g-dev libpcre3-dev libssl-dev
如果某些依赖包名不同,可以尝试:
apt-cache search libssl-dev
apt-cache search pcre
下载 Nginx 1.28.0 源码
cd /usr/local/src
wget http://nginx.org/download/nginx-1.28.0.tar.gz
tar -zxvf nginx-1.28.0.tar.gz
cd nginx-1.28.0
编译配置(保持原有参数)
使用上一步中记录的 configure arguments,例如:
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-poll_module \
--with-select_module
注意:如果原版本启用了第三方模块(如 --add-module=…/some_module),也需要在新版本中加上。
编译安装
make
make install
替换可执行文件
编译安装后,/usr/local/nginx/sbin/nginx 是新版本的二进制文件。你可以直接替换或重命名原文件。
# 检查版本
/usr/local/nginx/sbin/nginx -v
输出应为:
nginx version: nginx/1.28.0
检查配置文件语法并重启
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
升级验证
curl -I 127.0.0.1
检查响应头中是否包含 Server: nginx/1.28.0。
常见问题处理
1. 编译报错:缺少依赖
- 错误示例:fatal error: pcre.h: No such file or directory
- 解决方法:安装对应的开发包,如 libpcre3-dev
2. 信创平台兼容性问题
- 若使用鲲鹏/飞腾等架构,注意是否开启交叉编译或指定 --host 参数。
- 可尝试添加 --with-cpu-opt=generic 以提高兼容性。