本文详细介绍在 Ubuntu 22.04 上通过源码编译安装 Nginx 的步骤。

Nginx 安装指南

1. 下载源码包

建议下载 Nginx 官方稳定版。

1
2
3
4
5
6
7
8
9
10
cd /home
mkdir downloads
cd downloads

# 下载 Nginx 源码 (示例版本 1.25.2,建议查阅官网获取最新版)
wget https://nginx.org/download/nginx-1.25.2.tar.gz

# 解压
tar -zxvf nginx-1.25.2.tar.gz
cd nginx-1.25.2

2. 安装编译依赖

编译 Nginx 需要一些基础库(如 zlib, pcre, openssl 等)。

1
2
sudo apt-get update
sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libgd-dev libssl-dev -y

3. 编译与安装

配置编译选项并安装。

1
2
3
4
5
6
7
8
9
10
11
12
# 配置编译参数
./configure \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-stream \
--with-http_image_filter_module \
--with-http_realip_module \
--with-stream_ssl_module

# 编译并安装
make && sudo make install

4. 配置系统服务 (Systemd)

为了方便管理通过源码安装的 Nginx,我们可以创建一个 Systemd 服务文件。

创建文件 /lib/systemd/system/nginx.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

5. 启动服务

1
2
3
4
5
6
7
8
# 重新加载 Systemd 配置
sudo systemctl daemon-reload

# 启动 Nginx
sudo systemctl start nginx

# 设置开机自启
sudo systemctl enable nginx

或者使用传统的 init.d 脚本(不推荐 Systemd 系统使用):

1
2
3
4
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults
service nginx start