Nginx 概述
Nginx 是一款由俄罗斯程序员 Igor Sysoev 开发的轻量级、高性能 HTTP 和反向代理服务器,同时也支持 IMAP/POP3/SMTP 代理。自 2004 年发布以来,凭借其高并发处理能力、低内存消耗和稳定性,成为全球最受欢迎的 Web 服务器之一,广泛应用于静态资源服务、反向代理、负载均衡及 API 网关等场景。
一、安装与编译
源码编译安装
推荐使用源码编译以获取最佳性能并定制模块。解压压缩包后进入目录:
tar zxf nginx-1.24.0.tar.gz
cd nginx-1.24.0
执行 configure 脚本时,建议指定用户组、SSL 支持及常用模块:
./configure --prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-http_ssl_module --with-http_v2_module \
--with-http_realip_module --with-http_stub_status_module \
--with-pcre --with-stream --with-stream_ssl_module \
--with-stream_realip_module
make && make install
验证版本及编译参数:
/usr/local/nginx/sbin/nginx -V
自定义版本号
若需修改显示的版本号,可在编译前编辑 src/core/nginx.h:
#define NGINX_VERSION ""
#define NGINX_VER "CustomVersion/" NGINX_VERSION
重新编译后,nginx -v 将显示自定义信息。
二、平滑升级与回滚
升级流程
- 编译新版本:解压新包,运行 configure(无需 make install),仅执行 make。
- 备份旧二进制:保留当前运行的
/usr/local/nginx/sbin/nginx。 - 替换新二进制:将新编译的
objs/nginx覆盖旧文件。 - 重载配置:发送信号让主进程加载新代码,Worker 进程会优雅重启。
kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid)
若发现问题,可通过 kill 旧进程或恢复备份快速回滚。
回滚操作
如果新版本存在严重问题,可重新拉起旧版本 Worker 进程。建议先备份新版文件:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.new
# 恢复旧版
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx
systemctl reload nginx

