源码编译安装nginx可精准控制版本、模块(如https、http/2、状态页)、运行用户及安装路径,适用于定制化生产环境;但需手动处理依赖、服务配置与升级。

源码编译安装 Nginx 能精准控制版本、启用特定模块(比如 HTTPS、HTTP/2、状态页)、指定运行用户和安装路径,适合对安全性、性能或功能有定制要求的生产环境。它不依赖系统仓库版本,但需要手动处理依赖、服务管理与后续升级。
安装编译依赖和基础工具
先确保系统具备编译能力及核心库开发头文件:
-
CentOS/RHEL 8+(dnf):
sudo dnf groupinstall "Development Tools" -y && sudo dnf install -y gcc openssl-devel pcre2-devel zlib-devel -
CentOS/RHEL 7(yum):
sudo yum groupinstall "Development Tools" -y && sudo yum install -y gcc openssl-devel pcre-devel zlib-devel -
Ubuntu/Debian:
sudo apt update && sudo apt install -y build-essential libssl-dev libpcre2-dev zlib1g-dev
这些组件分别提供 C 编译器、SSL/TLS 支持、正则匹配(rewrite 等指令依赖)和 gzip 压缩能力。
下载、解压并配置源码
从 nginx.org 官网 获取稳定版(如 nginx-1.28.2.tar.gz),然后执行:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 下载:
wget https://www.php.cn/link/9926b3ed9e0bc20b2ed7f32711b8b45fnginx-1.28.2.tar.gz - 解压:
tar -zxvf nginx-1.28.2.tar.gz && cd nginx-1.28.2 - 创建低权限运行用户:
sudo useradd -r -s /sbin/nologin nginx - 运行 configure(关键步骤,检查依赖并生成 Makefile):
./configure --prefix=/usr/local/nginx \<br> --user=nginx --group=nginx \<br> --with-http_ssl_module \<br> --with-http_v2_module \<br> --with-http_stub_status_module \<br> --with-http_gzip_static_module
其中 --prefix 指定安装根目录;--with-xxx 启用对应模块,缺省不开启;若需第三方模块(如 lua 或 cache purge),加 --add-module=/path/to/module。
编译并安装到目标路径
执行两步命令完成构建:
-
make—— 编译源码(无需 root 权限) -
sudo make install—— 将二进制、配置文件、日志目录等复制到--prefix指定路径(如/usr/local/nginx)
完成后,主程序位于 /usr/local/nginx/sbin/nginx,默认配置在 /usr/local/nginx/conf/nginx.conf。
启动服务并验证运行
源码安装默认不自带 systemd 单元文件,需手动配置或直接调用:
- 检查配置语法:
/usr/local/nginx/sbin/nginx -t(输出 “syntax is ok” 表示无误) - 启动服务:
/usr/local/nginx/sbin/nginx - 查看进程:
ps aux | grep nginx应显示 master + worker 进程 - 访问测试:
curl http://localhost或浏览器打开服务器 IP,看到 “Welcome to nginx!” 页面即成功 - 如需 systemd 管理,可手动创建
/etc/systemd/system/nginx.service文件,并执行sudo systemctl daemon-reload && sudo systemctl enable --now nginx










