如何在 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

第三步:下載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

注意:不要複製上面的命令;這只是一個例子。確保您取得最新的穩定版或主線下載連結。

第四步:提取原始碼

原始碼位於壓縮的 tarball 中。使用以下命令提取它:

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 模組以實現安全 Web 連線。
  • –with-http_image_filter_module=dynamic:開啟影像過濾模組。
  • –modules-path=/etc/nginx/modules:定義動態模組的去向。
  • –with-http_v2_module:開啟 HTTP/2 模組。
  • –with-stream=dynamic:動態啟動stream模組。
  • –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 的最新帖子 (看全部)

發佈留言