如何在 Debian 12、11 或 10 上从源代码构建 NGINX

在 Debian 12、11 或 10 上从源代码构建 NGINX 具有多种优势和潜在缺点。从源代码编译允许您使用特定模块和优化来定制 NGINX,以满足您的需求,从而更好地控制构建过程。此方法还可以确保您在官方存储库中提供最新功能和安全补丁之前拥有它们。

但是,也有一些潜在的缺点需要考虑。与安装预编译包相比,从源代码构建需要更多时间和精力。它还需要很好地理解构建过程和依赖关系。此外,管理更新可能更复杂,因为您需要为每个新版本手动重新编译 NGINX。

本指南将演示如何在 Debian 12、11 或 10 上从源代码构建 NGINX,涵盖确保成功安装所需的步骤和命令。

步骤1:更新和升级Debian

在开始安装之前,请更新您的 Debian 系统。在终端中使用这些命令:

sudo apt update
sudo apt upgrade

这些命令将获取可用更新列表,然后升级您的系统,确保您使用最新的软件。

第 2 步:安装所需的依赖项

使用以下命令安装编译 Nginx 所需的初始包:

sudo apt install build-essential libpcre3-dev libssl-dev zlib1g-dev libgd-dev

步骤3:下载NGINX源代码

安装完必要的依赖项后,下一步是下载 NGINX 源代码。请访问 NGINX 网站 并选择最适合您需求的版本。您可以选择最新的主线版本、稳定版本或其他版本。

使用 wget 命令下载您选择的版本:

wget http://nginx.org/download/nginx-x.x.x.tar.gz

将 xxx 替换为版本号。例如,要下载最新主线版本 1.25.1,请使用以下命令:

wget https://nginx.org/download/nginx-1.25.1.tar.gz

注意:不要复制上述命令;这只是一个例子。确保您获取最新的稳定版或主线下载链接。

步骤 4:提取源代码

源代码以压缩包的形式提供。使用以下命令将其提取:

tar -xzvf nginx-1.25.1.tar.gz

然后,导航到新提取的目录:

cd nginx-1.25.1

步骤5:配置NGINX选项

在此步骤中,从源设置 NGINX 选项。这意味着选择 NGINX 构建的路径和模块。使用此命令:

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre  --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-http_v3_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module

这些选项的含义如下:

  • –prefix=/var/www/html:设置安装的根目录。
  • –sbin-path=/usr/sbin/nginx:设置 nginx 程序所在的位置。
  • –conf-path=/etc/nginx/nginx.conf:选择主 NGINX 配置文件位置。
  • –http-log-path=/var/log/nginx/access.log 和 –error-log-path=/var/log/nginx/error.log:定义日志文件的位置。
  • –with-pcre:为配置文件打开 PCRE(Perl 兼容正则表达式)。
  • –lock-path=/var/lock/nginx.lock 和 –pid-path=/var/run/nginx.pid:设置锁和 pid 文件的位置。
  • –with-http_ssl_module:激活 SSL 模块以建立安全的网络连接。
  • –with-http_image_filter_module=dynamic:打开图像过滤模块。
  • –modules-path=/etc/nginx/modules:定义动态模块的位置。
  • –with-http_v2_module:打开HTTP/2模块。
  • –with-stream=dynamic:动态激活流模块。
  • –with-http_addition_module 和 –with-http_mp4_module:打开附加模块和 MP4 模块。

如果您不想使用 HTTP/3 模块,只需省略 –with-http_v3_module。HTTP/3 提供更快、更可靠的网页浏览。

步骤 6:安装 NGINX(编译并构建 NGINX)

配置从源代码构建 NGINX 的选项后,就该编译和安装 NGINX 了。这是一个两步过程:

首先, make 命令使用指定的选项编译 NGINX 源代码 ./configure 脚本。这将创建 NGINX 二进制可执行文件:

make

第二, sudo make install 命令将 NGINX 二进制文件、配置文件和其他文件安装到 ./configure 脚本:

sudo make install

安装后,NGINX 将位于 sbin 前缀路径的目录。

步骤7:创建NGINX Systemd服务

从源代码构建和编译 NGINX 后,创建一个 systemd 进程来管理系统上的 NGINX 服务至关重要。操作方法如下:

创建一个新的 systemd 服务文件:

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

在文件中添加以下内容:

[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=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载 systemd 守护进程:

sudo systemctl daemon-reload

启动 NGINX 服务:

sudo systemctl start nginx

启用 NGINX 服务在启动时自动启动:

sudo systemctl enable nginx

最后,确保服务已激活:

systemctl status nginx

步骤 8:测试 NGINX

要验证 NGINX 是否正常运行,请打开 Web 浏览器并使用本地主机或服务器 IP 地址导航到测试页面:

http://localhost

或者更换 localhost 使用您的服务器 IP 地址。

附加命令和提示

使用附加模块编译 NGINX

您可以通过使用附加模块编译 NGINX 来增强其功能。例如,要使用 Nginx HTTP 推送模块,请在 NGINX 的配置期间使用 –add-module 标志:

./configure --add-module=/path/to/nginx-http-push-module
make
sudo make install

结论

通过遵循这些步骤,您可以在 Debian 系统上成功构建和安装 NGINX 源代码。这种方法为您提供了更大的灵活性和对 NGINX 安装的控制,允许您根据特定要求进行定制。定期检查更新并根据需要重新编译以保持安全性和性能。享受从源代码构建 NGINX 提供的增强功能和自定义选项。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论