Nginx Mainline 是 Nginx Web 伺服器的開發分支,在穩定版本發布之前提供最新的功能、更新和效能改進。它非常適合需要存取最新功能和增強功能的開發人員和管理員。 Nginx Mainline 特別適合需要尖端效能和靈活性的環境,例如高流量網站、負載平衡和反向代理設定。
在 Debian 12 或 11 上,您有兩種主要方法透過命令列終端機安裝 Nginx Mainline。第一個選項是使用 nginx.org 提供的官方 apt 鏡像,這可確保您直接從 Nginx 團隊收到最新更新。或者,您可以使用 Ondřej Surý 維護的第三方儲存庫來安裝 Nginx Mainline,他以維護 Nginx 和其他基本軟體的最新軟體包而聞名。本指南將引導您完成這兩種方法,讓您選擇最適合您需求的方法。
方法 1:透過 Nginx.org 安裝 Nginx Mainline
Nginx 主線預先安裝步驟
更新 Debian 系統軟體包
我們指南的第一步是確保您的 Debian 系統已完全更新。這可確保您擁有所有軟體包和安全性修補程式的最新版本。要更新軟體包清單和軟體包本身,您需要先在終端機中執行以下命令:
sudo apt update
若要升級任何過時的軟體包,請執行以下命令:
sudo apt upgrade
安裝所需的軟體包
根據您選擇在 Debian 系統上安裝最新 Nginx 主線版本的方法,這兩種方法都可能需要額外的軟體套件。以下命令將安裝所需的內容:
sudo apt install curl gnupg2 ca-certificates lsb-release dirmngr software-properties-common apt-transport-https -y
大多數可能已經安裝,但請重新執行此命令以確保它們已安裝。
匯入 Nginx.org Nginx 主線儲存庫
此方法直接從 Nginx.org 的官方 APT 儲存庫中取得最新的 Nginx 主線或穩定版。當新版本的 Nginx 發佈時,這是立即保持最新狀態的最佳選擇。
匯入 Nginx.org GPG 金鑰
第一步是下載並新增 Nginx GPG 金鑰。此金鑰對於驗證我們將安裝的軟體包的真實性是必需的:
curl -fSsL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg > /dev/null
我們現在將使用 GPG 金鑰來驗證金鑰是否成功導入:
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
假設導入成功,您將看到確認密鑰詳細資訊的輸出。
成功時的輸出範例:
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
匯入 Nginx.org APT 儲存庫
當 GPG 金鑰安全到位後,我們可以將 Nginx Mainline 或 Stable 儲存庫新增至我們的 APT 套件管理器清單。
若要匯入 Nginx Mainline 儲存庫,請使用:
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
筆記: 本文主要討論安裝Nginx主線。不過,我還提供了安裝最新穩定版本的選項,對於許多 Linux 發行版來說,這將構成重大升級。
或者,對於 Nginx 穩定儲存庫:
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
我們的下一個目標是配置 APT 固定,以優先選擇 nginx.org 儲存庫中的 Nginx 軟體包,而不是預設 Debian 或其他第三方儲存庫中的任何軟體包。
我們透過使用以下命令來實現這一點:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
輸出範例:
x\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
Package: *
Pin: origin nginx.org
Pin: release o=nginx
Pin-Priority: 900
在此階段,我們需要更新 APT 儲存庫以包含新新增的內容:
sudo apt update
完成 Nginx 主線安裝
一切都設定正確後,我們現在可以安裝 Nginx:
sudo apt install nginx
安裝完成後,驗證是否成功至關重要。為了確認Nginx安裝是否正確,我們可以檢查安裝的版本:
nginx -v
命令輸出應反映最新的 Nginx 主線或穩定版本,具體取決於您安裝的版本。
方法 2:透過 Ondřej Surý 安裝 Nginx Mainline
第二種方法使用由 Ondřej Surý 維護的著名第三方儲存庫,Debian 和 Ubuntu 社群中的許多人都知道 Ondřej Surý 維護上游版本的 Apache、Nginx 和 PHP 儲存庫。這種方法依賴於等待他在有新版本出現時進行更新。它不像 Nginx.org APT 儲存庫那麼快,但該版本包含額外的編譯模組;一種是使用 Brotli。
導入 Nginx 主線
要從第三方儲存庫匯入 Nginx Mainline 儲存庫,這很簡單;使用以下命令:
curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x
對於那些喜歡切換回最新穩定版或想要使用穩定版而不是主線的用戶,請使用以下命令導入此版本:
curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x
確保您已刪除主線版本以避免衝突。
安裝 Nginx 主線
現在,您可以使用下列指令安裝 Nginx 主線或穩定版:
sudo apt install nginx
確認 Nginx 主線安裝
安裝 Nginx 後,您可以使用以下命令確認安裝:
nginx -v
輸出應顯示已安裝的 Nginx 版本;如果匹配最新的主線,那麼你已經成功安裝了主線版本。
Ondřej Surý 安裝方法的附加 Nginx 提示
在 Nginx 主線或穩定版設定 Brotli
由於 Nginx 主線版本或穩定版本都包含 brotli 模組,因此要安裝模組,請使用下列命令:
sudo apt install libnginx-mod-brotli
現在開啟 Nginx 設定檔:
sudo nano /etc/nginx/nginx.conf
若要在 Nginx 伺服器上啟用 Brotli 壓縮,您需要在 Nginx 伺服器的 HTTP 區塊中新增以下配置 nginx.conf
設定檔:
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
以下是設定指令的細分:
- brotli on;:
- 該指令啟用 Brotli 壓縮。
- brotli_comp_level 6;:
- 這會將壓縮等級設為 6(範圍為 0-11)。數值越高,壓縮效果越好,但會使用更多 CPU 資源。
- brotli_static on;:
- 該指令告訴 Nginx 檢查帶有 .br 副檔名的預壓縮檔。如果存在這樣的文件,則會提供該文件,而不是動態壓縮該文件。
- brotli_types …;:
- 此指令指定應壓縮的響應的 MIME 類型。一長串類型包括受益於 Brotli 壓縮的各種文字格式、字體和圖像。
現在在重新載入之前測試 nginx 配置以確保不存在錯誤:
sudo nginx -t
現在使用以下命令測試 brotli 壓縮:
curl -I --compressed http://your-server.com/some-path
以下是所使用指令的細分:
- curl:這是用於發送 HTTP 請求的命令列工具。
- -I:此標誌告訴curl 僅獲取標頭。
- –compressed:此標誌告訴curl請求壓縮內容。
- http://your-server.com/some-path:這是您正在測試的 URL。
在輸出中尋找內容編碼:br 的標頭。這表示正在使用 Brotli 壓縮:
Content-Encoding: br
結論
透過使用 nginx.org 的官方 apt-mirror 或 Ondřej Surý 的第三方儲存庫在 Debian 上安裝 Nginx Mainline,您已經為您的伺服器配備了最新、最高級版本的 Nginx。這確保您的系統可以利用針對您的特定環境量身定制的尖端功能和性能改進。您選擇的儲存庫的定期更新將使 Nginx 保持安全且有效率的運作。無論您選擇官方鏡像還是第三方儲存庫,維護 Nginx Mainline 將幫助您在 Debian 系統上的 Web 伺服器技術方面保持領先地位。