从零源码编译安装Nginx 1.24.0需自主控制依赖、版本、模块及路径:先装gcc、PCRE、zlib、OpenSSL等基础依赖;再下载解压源码;最后用./configure指定--prefix、模块及用户等参数完成配置。

从零开始源码编译安装指定版本的 Nginx,核心在于控制依赖、版本、模块和配置路径——不依赖系统包管理器,完全自主掌控运行环境。以下步骤适用于主流 Linux 发行版(如 CentOS 7+/Rocky/AlmaLinux、Ubuntu 20.04+),以安装 Nginx 1.24.0 为例(你可替换为任意官方支持的版本)。
准备编译环境与基础依赖
确保系统已安装编译工具链和 Nginx 构建所需的基础库:
- C 编译器:gcc、g++(或 clang)、make
- PCRE:支持正则表达式(rewrite 指令必需)
- zlib:支持 gzip 压缩(gzip on 必需)
- OpenSSL:支持 HTTPS(TLS 1.2+,推荐 1.1.1 或 3.0+)
示例命令(Ubuntu/Debian):
sudo apt update && sudo apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev
CentOS/RHEL 系:
sudo yum groupinstall -y "Development Tools" sudo yum install -y pcre-devel zlib-devel openssl-devel
下载并解压指定版本 Nginx 源码
前往 nginx.org/download/ 找到目标版本(如 nginx-1.24.0.tar.gz),用 wget 下载并解压到自定义工作目录:
wget https://www.php.cn/link/9926b3ed9e0bc20b2ed7f32711b8b45fnginx-1.24.0.tar.gz tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0
注意:不要用 root 用户直接解压或编译;建议使用普通用户操作,仅在安装阶段提权。
配置 configure 参数(关键!)
运行 ./configure 前,明确你要的安装路径、启用模块、禁用默认模块等。常用安全 & 实用参数示例:
./configure \ --prefix=/usr/local/nginx-1.24.0 \ --sbin-path=/usr/local/nginx-1.24.0/sbin/nginx \ --conf-path=/usr/local/nginx-1.24.0/conf/nginx.conf \ --pid-path=/usr/local/nginx-1.24.0/run/nginx.pid \ --lock-path=/usr/local/nginx-1.24.0/run/nginx.lock \ --error-log-path=/usr/local/nginx-1.24.0/logs/error.log \ --http-log-path=/usr/local/nginx-1.24.0/logs/access.log \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-pcre \ --with-zlib \ --with-openssl=../openssl-3.0.12 \ # 若需指定 OpenSSL 源码路径(非系统库) --user=www-data \ --group=www-data
说明:
-
--prefix是根目录,后续所有路径都基于它;建议带版本号,方便多版本共存 -
--with-openssl=后接本地 OpenSSL 源码路径时,Nginx 会静态链接该版本(增强 TLS 安全性) - --user/--group 指定 worker 进程运行身份,需提前创建对应系统用户(
sudo useradd -r -s /bin/false www-data) - 执行后检查输出末尾是否显示
configuration summary且无ERROR;若提示 missing 库,请返回第二步补装
编译安装并验证
确认 configure 成功后,依次执行:
make -j$(nproc) # 并行编译,加速过程 sudo make install
安装完成后,验证版本与模块:
/usr/local/nginx-1.24.0/sbin/nginx -v /usr/local/nginx-1.24.0/sbin/nginx -V # 大写 V 查看全部编译参数和模块
启动前先检查配置语法:
/usr/local/nginx-1.24.0/sbin/nginx -t
若输出 successful,即可启动:
/usr/local/nginx-1.24.0/sbin/nginx
访问 http://localhost 或服务器 IP,看到 “Welcome to nginx!” 页面即成功。
(可选)配置 systemd 服务与开机自启
创建服务文件 /etc/systemd/system/nginx-1.24.0.service:
[Unit] Description=nginx 1.24.0 After=network.target <p>[Service] Type=forking User=root Group=root PIDFile=/usr/local/nginx-1.24.0/run/nginx.pid ExecStartPre=/usr/local/nginx-1.24.0/sbin/nginx -t -c /usr/local/nginx-1.24.0/conf/nginx.conf ExecStart=/usr/local/nginx-1.24.0/sbin/nginx -c /usr/local/nginx-1.24.0/conf/nginx.conf ExecReload=/usr/local/nginx-1.24.0/sbin/nginx -s reload ExecStop=/usr/local/nginx-1.24.0/sbin/nginx -s stop Restart=on-failure</p><p>[Install] WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload sudo systemctl enable nginx-1.24.0 sudo systemctl start nginx-1.24.0
整个过程无需修改系统默认 nginx,也不影响其他服务。只要保留源码目录和 configure 命令,未来升级或回滚版本只需重跑一遍流程。

















