Nginx 源码编译安装指南
本文档详细记录了从源码下载、依赖安装、编译配置到启动验证的全过程,并提供了常见问题的解决方案。推荐在 CentOS/RHEL 或 Ubuntu/Debian 等主流 Linux 发行版上操作。
一、概述
Nginx 是一款高性能的 HTTP 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。通过源码编译安装,您可以灵活地选择需要的功能模块、优化编译参数,并定制安装路径,从而满足特定的生产环境需求。
二、前期准备
1.系统要求
- 操作系统:CentOS 7/8、RHEL 7/8、Ubuntu 18.04/20.04 或更高版本
- 硬件:至少 1 核 CPU、1GB 内存(视负载而定)
- 磁盘空间:源码编译需要约 200MB 临时空间,安装后约 50MB
2.下载源码
访问 Nginx 官方下载页面 获取最新稳定版(或指定版本)。本文使用 1.28.0 版本。
wget https://nginx.org/download/nginx-1.28.0.tar.gz
3.解压
tar -zxvf nginx-1.28.0.tar.gz
cd nginx-1.28.0
三.编译与安装
1. 安装依赖
#对于 CentOS/RHEL 系统
yum -y groupinstall "Development Tools"
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
#对于 Ubuntu/Debian 系统
apt update
apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
2. 配置编译选项
进入解压后的 Nginx 源码目录,使用./configure 脚本用于检测系统环境并生成 Makefile。您可以通过添加参数选择需要编译的模块和功能。
2.1 常用配置参数说明
| 配置参数 | 作用说明 | 生产环境实用性 |
|---|---|---|
--prefix=/usr/local/nginx |
指定安装目录 | ⭐⭐⭐⭐⭐ 必选 |
--with-http_ssl_module |
启用 HTTPS/SSL 支持 | ⭐⭐⭐⭐⭐ 必选 |
--with-http_v2_module |
启用 HTTP/2 支持 | ⭐⭐⭐⭐ 推荐 |
--with-http_stub_status_module |
启用状态页,可用于监控连接数等 | ⭐⭐⭐⭐ 推荐 |
--with-http_realip_module |
获取真实客户端 IP,当 Nginx 位于代理之后时很有用 | ⭐⭐⭐ 有用 |
--with-http_gzip_static_module |
启用静态 gzip 压缩,可预压缩静态文件以节省 CPU | ⭐⭐⭐ 有用 |
--with-stream |
启用 TCP/UDP 代理,用于非 HTTP 流量的负载均衡 | ⭐⭐ 按需 |
--with-http_sub_module |
响应内容替换,可在返回给客户端的页面中替换字符串 | ⭐⭐ 按需 |
--with-pcre |
显式指定使用 PCRE 库(通常系统会自动找到) | 一般不需要 |
--with-zlib |
显式指定使用 zlib 库 | 一般不需要 |
2.2 基础配置示例
兼顾常用功能,推荐使用以下配置:
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-stream \
--with-http_sub_module
2.3 自定义配置
若需要第三方模块(如 nginx-module-vts、lua-nginx-module),可在配置时通过 --add-module=PATH 添加。具体请参考模块文档。
2.4 编译安装
配置成功后,执行以下命令进行编译和安装:
- make:根据 Makefile 编译源码。
- make install:将编译好的文件复制到
--prefix指定的目录。
提示:若编译过程中出现错误,请检查依赖是否完整,或查看输出日志中的提示。
# 编译源码
make
# 安装到指定目录
make install
四.运行与验证
1.启动 Nginx
安装完成后,Nginx 的主要文件都会存放在 --prefix 指定的目录(如 /usr/local/nginx)下。
/usr/local/nginx/sbin/nginx
2.检查进程
正常输出应包含一个 master 进程和多个 worker 进程。如果能看到 master 和 worker 进程说明启动成功
ps aux | grep nginx
3.测试配置文件
修改配置文件后,务必测试语法:
输出 syntax is ok 和 test is successful 表示配置正确。
/usr/local/nginx/sbin/nginx -t
4.常用管理命令
进入安装目录的 sbin 下执行(或添加至 PATH):
| 命令 | 作用 |
|---|---|
./nginx -s reload |
重新加载配置(平滑) |
./nginx -s quit |
优雅停止 |
./nginx -s stop |
强制停止 |
./nginx -V |
查看编译时配置参数 |
5.访问测试
使用浏览器或 curl 访问服务器 IP,看到 “Welcome to nginx!” 页面即表示安装成功。
curl http://127.0.0.1
五、常见问题排查
1.端口占用
若启动失败,检查 80 端口是否被占用:
若被 Apache 或其他服务占用,可修改 Nginx 配置文件中的 listen 端口,或停止占用程序。
netstat -tlnp | grep :80
2.编译时提示缺少某个库
根据错误信息安装对应的开发包。例如缺少 libssl.so 则需安装 openssl-devel(CentOS)或 libssl-dev(Ubuntu)。
3.无法访问页面
- 检查防火墙是否放行相应端口。
- 检查 SELinux 是否阻止:
getenforce,若为 Enforcing,可尝试临时关闭测试。 - 检查 Nginx 配置文件中的
root路径是否正确,且具有读取权限。
更多推荐




所有评论(0)