Nginx 安装教程 (编译安装)
本教程将详细介绍如何在 CentOS 系统上通过编译源码的方式安装 Nginx,并将其配置为 systemd 服务。编译安装能让我们使用官方最新的稳定版本,并可以按需自定义模块。
1. 准备工作
在开始编译之前,需要安装必要的编译工具和 Nginx 所依赖的库。
1.1 安装编译依赖
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel1.2 创建 Nginx 运行用户
出于安全考虑,创建一个专门的系统用户来运行 Nginx 服务,而不是使用 root。
# 创建一个不允许登录的系统用户 nginx
useradd -r -s /sbin/nologin nginx2. 下载源码并编译安装
2.1 下载 Nginx 源码
您可以从 Nginx 官网 查看最新版本,并复制链接进行下载。


# 下载 Nginx 稳定版源码包
wget https://nginx.org/download/nginx-1.28.0.tar.gz2.2 解压并配置
解压源码包,并进入其目录,然后运行 ./configure 脚本来配置编译选项。
# 解压
tar -zxvf nginx-1.28.0.tar.gz
# 进入源码目录
cd nginx-1.28.0下面是一个推荐的配置命令,它指定了安装路径、运行用户,并启用了 SSL 和状态页模块。
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module2.3 编译并安装
执行 make 进行编译,然后 make install 完成安装。
make && make install3. 基础配置与启动
3.1 认识 Nginx 命令
Nginx 的可执行文件位于安装路径的 sbin 目录下。
- 启动 Nginx:
/usr/local/nginx/sbin/nginx - 测试配置文件:
/usr/local/nginx/sbin/nginx -t - 停止 Nginx:
/usr/local/nginx/sbin/nginx -s stop - 平滑重启 (重新加载配置):
/usr/local/nginx/sbin/nginx -s reload
3.2 (可选) 配置全局命令
为了方便在任何路径下都能直接使用 nginx 命令,可以采用以下任意一种方式。
方式一:创建符号链接 (推荐)
创建一个从 Nginx 可执行文件到 /usr/local/bin 目录的符号链接。这是更推荐的方式,因为它不会污染全局配置文件,且管理更方便。
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx方式二:修改环境变量
您也可以通过编辑系统级的 profile 文件来添加 Nginx 的路径。
# 1. 编辑环境配置文件
vim /etc/profile
# 2. 在文件末尾加入以下内容
export PATH=$PATH:/usr/local/nginx/sbin
# 3. 使配置立即生效
source /etc/profile4. 配置为 Systemd 服务
为了方便管理 Nginx 服务并实现开机自启,我们需要创建一个 systemd 服务文件。
4.1 创建服务文件
创建并编辑 /etc/systemd/system/nginx.service 文件:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/bin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/bin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target4.2 使用 Systemd 管理 Nginx
现在,您可以使用 systemctl 命令来管理 Nginx 了。
# 重新加载 systemd 配置
systemctl daemon-reload
# 启动 Nginx
systemctl start nginx
# 查看 Nginx 状态
systemctl status nginx
# 设置开机自启
systemctl enable nginx
# 停止开机自启
systemctl disable nginx5. (可选)配置文件拆分
为了便于管理,通常我们会将主配置文件 nginx.conf 中的 server 块拆分到单独的文件中。
打开主配置文件 /usr/local/nginx/conf/nginx.conf,在 http 块的末尾,确保有下面这行 include 指令(默认通常都有):
http {
# ... 其他默认配置 ...
include /usr/local/nginx/conf.d/*.conf;
}然后,您可以在 /usr/local/nginx/conf.d/ 目录下创建独立的网站配置文件(例如 my-site.conf),Nginx 会自动加载它们。