源码编译安装 nginx 的核心在于可控性——能精确选择模块、指定路径、适配系统特性,并为平滑升级奠基;关键在依赖完备、configure 参数合理、编译安装正确及 systemd 托管规范。

源码编译安装 Nginx 的核心在于可控性——你能精确选择模块、指定路径、适配系统特性,还能为后续平滑升级打下基础。关键不是“能不能装”,而是“装得对不对、稳不稳、好不好维护”。
一、先装好底座:系统依赖和编译工具
缺依赖会导致 configure 失败或运行时报错,别跳过这步。
- CentOS/RHEL/Rocky Linux(如 8/9/10.1):
yum groupinstall "Development Tools"yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel - Ubuntu/Debian:
apt update && apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev
验证 gcc 和 make 是否就绪:gcc --version、make --version,有输出即正常。
二、下载解压,进入源码目录
推荐使用稳定版,当前主流生产环境常用 1.26.x 或 1.28.x(如 1.28.1)。官网地址:https://www.php.cn/link/9926b3ed9e0bc20b2ed7f32711b8b45f
- 下载并解压(以 1.28.1 为例):
wget https://www.php.cn/link/9926b3ed9e0bc20b2ed7f32711b8b45fnginx-1.28.1.tar.gztar -zxvf nginx-1.28.1.tar.gzcd nginx-1.28.1
三、configure 配置:按需启用模块
这是最关键的一步。默认配置极简,多数功能需显式开启。常见实用组合:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 基础 + SSL + 状态页 + Gzip:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module - 加第三方模块(如 echo 模块):
先下载模块源码(如git clone https://github.com/openresty/echo-nginx-module.git),再在 configure 中追加:--add-dynamic-module=../echo-nginx-module - 若要支持 HTTP/3(需 OpenSSL 3.0+ 和 quiche):
需额外添加--with-http_v3_module并确保底层依赖已就位
执行后检查末尾是否显示 "Configuration summary" 且无 error 提示,再继续。
四、编译安装与初始化服务
两步到位,但注意权限和路径一致性:
- 编译:
make(耗时取决于 CPU,通常 1–3 分钟) - 安装:
sudo make install(默认装到--prefix指定路径) - 创建软链或加入 PATH(可选):
sudo ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/nginx - 首次启动前检查配置:
/usr/local/nginx/sbin/nginx -t - 启动:
/usr/local/nginx/sbin/nginx
验证:ps aux | grep nginx 应见 master + worker 进程;curl -I http://127.0.0.1 返回 200 OK。
五、补充:systemd 托管更省心
手动启停不适合生产。建议补一个 systemd 单元文件:
- 新建
/etc/systemd/system/nginx.service,内容含 ExecStart、PIDFile、Restart 等标准字段 - 重载配置:
sudo systemctl daemon-reload - 启用开机自启:
sudo systemctl enable nginx
之后可用 systemctl start|stop|reload nginx 统一管理。










