首页/系统/信创系统运维速查/Nginx 信创平台编译安装
迁移适配65 条

Nginx 信创平台编译安装

Nginx 在各架构编译流程一致:装 PCRE/zlib/OpenSSL 依赖、configure 指定模块、make 安装;注意 ARM 平台同样要装开发包而非只是运行库。

信创系统运维速查系统更新于 2026-10-13

Nginx 便携编译安装是做什么的

在信创平台上编译 Nginx 的流程与 x86 完全一致:先装依赖开发包(PCRE、zlib、OpenSSL 对应的 -devel 包)、用 configure 指定安装前缀与需要启用的模块、make 编译、make install 安装,最后用 nginx -t 校验配置。常见坑点是只装了运行库没装开发包,configure 阶段就会报找不到头文件;另外与发行版自带 Nginx 共存时要注意配置目录与端口冲突。

基本信息

依赖开发包gcc、make、pcre2-devel、zlib-devel、openssl-devel
配置前缀--prefix 指定安装目录,常用 /usr/local/nginx
常用模块参数--with-http_ssl_module、--with-http_stub_status_module
校验命令nginx -t 检查配置语法
托管方式可写 systemd 单元,用 daemon off 前台运行

典型使用场景

  • 发行版仓库版本较旧,业务需要使用较新版本的功能或安全修复
  • 需要启用仓库默认未开启的模块,如特定的流媒体或统计模块
  • 交付要求与系统自带版本隔离,装到独立目录避免升级冲突
  • 排查官方二进制在信创平台的兼容问题,用源码编译验证差异来源
  • 为统一多台服务器的 Nginx 版本与编译参数,建立标准化构建流程
  • 安全整改要求升级到指定版本,而仓库尚未跟进

编译安装与托管

编译安装与托管
dnf install -y gcc make pcre2-devel zlib-devel openssl-devel   # 依赖开发包
./configure --prefix=/usr/local/nginx \
  --with-http_ssl_module --with-http_stub_status_module   # 指定模块
make -j$(nproc) 2>&1 | tee /tmp/nginx-build.log   # 编译并留档日志
sudo make install                                  # 安装到指定前缀
/usr/local/nginx/sbin/nginx -v                     # 确认版本
/usr/local/nginx/sbin/nginx -t                     # 校验配置语法
# systemd 托管(用前台方式运行):
# [Service]
# ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon off;'
# ExecReload=/usr/local/nginx/sbin/nginx -s reload
systemctl daemon-reload && systemctl enable --now nginx-local

编译与运行检查点

环节检查方式常见问题
依赖准备configure 输出摘要缺 -devel 包报找不到头文件
模块选择查看 configure 结尾的模块列表漏加参数导致功能不可用
编译结果nginx -v 与二进制路径装到系统目录与包管理器冲突
配置校验nginx -t升级后旧配置不兼容
服务托管systemctl status与仓库版单元名或端口冲突
编译日志必须留档:出问题时回看第一处 error 而不是末尾现象,同时日志也是交付与变更管理需要的证据材料。
与发行版自带 Nginx 共存时要明确两者关系:使用不同端口与配置目录,或停用其一;混淆之后会出现「改了配置不生效」这类很难定位的问题。

易错点

  • 只装 zlib 之类运行库而不装对应的开发包,configure 阶段直接报错,容易误解为源码与平台不兼容
  • 编译产物装到 /usr 或 /usr/local 覆盖包管理器的文件,后续系统升级可能出现冲突
  • 升级版本前不做 nginx -t 校验旧配置,新版本启动失败导致服务中断
  • 自编译版本与仓库版本同时运行,端口与配置目录混淆,配置改动看不出效果

数据来源与参考

  • Nginx 官方文档(nginx.org)
  • systemd 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌