Ubuntu 24.04 编译安装 Nginx 1.26.2 详解

编译安装 Nginx 可以让你完全掌控服务器的配置,选择需要的模块和优化性能。本文将详细介绍在 Ubuntu 24.04 上如何编译并安装 Nginx 1.26.2 版本。

一、准备工作

在开始编译之前,确保系统已经安装了所需的工具和依赖库。

1. 更新系统包

首先,更新系统包以确保安装的工具和库是最新的。

sudo apt update
sudo apt upgrade -y
  • 解释apt update 更新包列表,apt upgrade 升级所有已安装的软件包。
2. 安装编译工具和依赖库

编译 Nginx 需要一些编译工具和库,例如 build-essentiallibpcre3-devzlib1g-devlibssl-dev 等。使用以下命令安装这些依赖:

sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
  • 解释
    • build-essential:安装编译所需的基本工具,如 gccmake
    • libpcre3-dev:PCRE 库,用于正则表达式处理。
    • zlib1g-dev:Zlib 库,用于数据压缩。
    • libssl-dev:OpenSSL 库,用于 SSL/TLS 支持。

二、下载 Nginx 源代码

前往 Nginx 官方网站 下载 Nginx 1.26.2 版本的源代码,或直接使用 wget 命令下载:

wget https://nginx.org/download/nginx-1.26.2.tar.gz
  • 解释wget 是一个命令行工具,用于从指定的 URL 下载文件。

解压下载的源代码:

tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2
  • 解释tar -zxvf 解压 .tar.gz 文件,cd 进入解压后的目录。

三、配置 Nginx

在开始编译之前,需要配置 Nginx,选择要编译的模块和设置安装路径。可以使用 ./configure 命令进行配置。

./configure --prefix=/usr/local/nginx \
            --with-http_ssl_module \
            --with-http_v2_module \
            --with-http_gzip_static_module \
            --with-pcre \
            --with-zlib=/usr/include \
            --with-stream
  • 解释
    • --prefix=/usr/local/nginx:设置 Nginx 的安装路径为 /usr/local/nginx
    • --with-http_ssl_module:启用 SSL/TLS 支持。
    • --with-http_v2_module:启用 HTTP/2 协议支持。
    • --with-http_gzip_static_module:启用 gzip 静态压缩支持。
    • --with-pcre:使用 PCRE 库支持正则表达式。
    • --with-zlib=/usr/include:使用系统的 Zlib 库进行压缩操作。
    • --with-stream:启用流模块,支持 TCP/UDP 流代理。

四、编译和安装 Nginx

配置完成后,使用 makemake install 进行编译和安装。

make
sudo make install
  • 解释
    • make:编译源代码。
    • make install:将编译好的文件安装到指定的目录(此处为 /usr/local/nginx)。

五、配置 Nginx 服务

安装完成后,需要配置 Nginx 服务,使其能够作为系统服务自动启动。

1. 创建 Nginx 服务文件

/lib/systemd/system/ 目录下创建一个名为 nginx.service 的文件:

sudo nano /lib/systemd/system/nginx.service

将以下内容写入文件:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PIDFile=/usr/local/nginx/logs/nginx.pid
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 解释
    • [Unit]:定义服务的元数据和依赖。
    • [Service]:定义服务的启动、重载和停止命令。
    • [Install]:定义服务的安装目标,multi-user.target 表示多用户模式下启动。

保存并退出编辑器(Ctrl + O 保存文件,Ctrl + X 退出编辑器)。

2. 启动并设置 Nginx 开机自启动

执行以下命令启动 Nginx,并设置其为开机自启动:

sudo systemctl start nginx
sudo systemctl enable nginx
  • 解释
    • systemctl start nginx:启动 Nginx 服务。
    • systemctl enable nginx:设置 Nginx 服务为开机自启动。

六、验证安装

执行以下命令,检查 Nginx 是否正常运行:

sudo systemctl status nginx
  • 解释systemctl status nginx 查看 Nginx 服务的运行状态。

如果显示 active (running),则表明 Nginx 已成功启动。

可以通过浏览器访问服务器的 IP 地址或域名来验证 Nginx 是否正常工作。例如,访问 http://<your_server_ip>/,如果看到 Nginx 的默认欢迎页面,则说明安装成功。

七、常见问题与解决

  1. 编译错误:如果在 make 阶段遇到编译错误,通常是缺少某些依赖包,检查错误日志,根据提示安装缺失的依赖。
  2. Nginx 启动失败:如果 Nginx 启动失败,可以使用 journalctl -xe 命令查看系统日志,找出问题所在。例如,端口冲突或权限问题。
  3. 权限问题:确保 Nginx 的安装路径和配置文件目录对运行用户具有正确的读写权限。

原理解释表

步骤 解释
安装编译工具和依赖 安装构建和编译 Nginx 所需的工具和库
下载 Nginx 源代码 从 Nginx 官方网站下载特定版本的源代码
配置 Nginx 使用 ./configure 命令配置 Nginx 编译选项
编译和安装 通过 makemake install 完成编译和安装
配置 Nginx 服务 设置 Nginx 作为系统服务,便于管理和自动启动

结论

通过本文的步骤,您可以在 Ubuntu 24.04 上成功编译并安装 Nginx 1.26.2。编译安装 Nginx 的优势在于可以根据实际需求定制配置,并选择特定的模块和优化选项。配置完成后,验证 Nginx 的安装,并根据实际使用情况调整配置文件,确保服务器的安全性和性能。