Nginx Mainline は、安定版リリースに先駆けて最新の機能、更新、パフォーマンス改善を提供する Nginx Web サーバーの開発ブランチです。最新の機能や拡張機能にアクセスする必要がある開発者や管理者に最適です。Nginx Mainline は、トラフィック量の多い Web サイト、負荷分散、リバース プロキシ構成など、最先端のパフォーマンスと柔軟性が不可欠な環境に特に適しています。
Debian 12 または 11 では、コマンドライン ターミナルから Nginx Mainline をインストールするには主に 2 つの方法があります。最初のオプションは、nginx.org が提供する公式 apt ミラーを使用することです。これにより、最新のアップデートを Nginx チームから直接受け取ることができます。または、Nginx やその他の重要なソフトウェアの最新パッケージを維持していることで知られる Ondřej Surý が管理するサードパーティ リポジトリを使用して Nginx Mainline をインストールすることもできます。このガイドでは、両方の方法について説明し、ニーズに最適な方法を選択できるようにします。
方法 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 メインラインまたは安定版が Nginx.org の公式 APT リポジトリから直接取得されます。これは、新しいバージョンの 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 メインライン リポジトリをインポートするには、次を使用します。
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 Stable リポジトリの場合:
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
次の目標は、デフォルトの Debian または他のサードパーティ リポジトリのパッケージよりも、nginx.org リポジトリの Nginx パッケージを優先するように APT ピンニングを構成することです。
これを実現するには、次のコマンドを使用します。
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 Mainline または Stable バージョンが反映されるはずです。
方法 2: Ondřej Surý 経由で Nginx メインラインをインストールする
2 番目の方法は、Debian および Ubuntu コミュニティの多くの人が知っている、アップストリーム リリース用の Apache、Nginx、および PHP リポジトリを管理している Ondřej Surý が管理する、よく知られたサードパーティ リポジトリを使用します。この方法では、新しいバージョンがリリースされたときに彼が更新するのを待つことになります。Nginx.org APT リポジトリほど高速ではありませんが、このバージョンには追加のコンパイル済みモジュールが含まれています。そのうちの 1 つは 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 Mainline または Stable に Brotli をセットアップする
Nginx メインラインと安定版の両方のバージョンに brotli モジュールが含まれているため、これをインストールするには次のコマンドを使用します。
sudo apt install libnginx-mod-brotli
次に、Nginx 構成ファイルを開きます。
sudo nano /etc/nginx/nginx.conf
NginxサーバーでBrotli圧縮を有効にするには、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 です。
出力で Content-Encoding: br というヘッダーを探します。これは Brotli 圧縮が使用されていることを示します。
Content-Encoding: br
結論
nginx.org の公式 apt-mirror または Ondřej Surý のサードパーティ リポジトリのいずれかを使用して Debian に Nginx Mainline をインストールすると、サーバーに最新かつ最も高度なバージョンの Nginx が装備されます。これにより、システムは特定の環境に合わせた最先端の機能とパフォーマンスの向上を活用できるようになります。選択したリポジトリからの定期的な更新により、Nginx は安全かつ効率的に実行されます。公式ミラーまたはサードパーティ リポジトリのどちらを選択する場合でも、Nginx Mainline を維持することで、Debian システムで Web サーバー テクノロジーを常にリードすることができます。