【AlmaLinux 10】Nginx公式リポジトリから最新Mainline版をインストールする方法

記事内に広告が含まれています。

AlmaLinux 10の標準リポジトリにもNginxは用意されていますが、バージョンが古い場合があります。

最新の機能や修正を利用したい場合は、Nginxが公式に提供しているリポジトリを使用するのがおすすめです。

この記事では、Nginx公式リポジトリを追加し、最新のMainline(メインライン)版をインストールする手順を解説します。

事前準備(必要なツールのインストール)

まずはシステムを最新の状態にし、リポジトリの管理に必要なパッケージ「dnf-plugins-core」をインストールします。

$ sudo dnf update
$ sudo dnf install dnf-plugins-core

Nginx公式リポジトリを追加

Nginx公式リポジトリの設定ファイルを、「/etc/yum.repos.d/nginx.repo」という名前で作成します。

$ sudo vi /etc/yum.repos.d/nginx.repo 

設定内容は以下のとおりです。
Stable版とMainline版の両方の設定を記述しておきます。

[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Mainline版を使用するための設定変更

Nginxには大きく分けて「Mainline版」と「Stable版」の2種類のリリースラインが存在します。

  • Mainline(開発メインストリーム):常に最新機能が追加され、バグ修正も最も早く反映されます。
  • Stable(保守ライン):Mainlineから分岐し、新機能は追加されず重大なバグ修正のみが行われます。

※Stableは仕様が固定されているため、サードパーティ製モジュールとの互換性を重視する場合に使用します。

Nginx公式は原則として最新のMainline版の利用を推奨していますが、初期設定では[nginx-stable]のみが有効(enabled=1)に設定されているので、以下のコマンドを実行して[nginx-mainline]も有効化します。

$ sudo dnf config-manager --enable nginx-mainline

このコマンドを実行すると、リポジトリの[nginx-mainline]部分にある「enabled=0」が「enabled=1」に変更され、使用可能になります。

Stable版とMainline版が両方有効な場合、どちらがインストールされる?

dnfコマンドは、両方のリポジトリが有効な場合、バージョン番号が大きい(新しい)パッケージを自動的に優先してインストールします。

たとえば、Stable版が1.30.xで Mainline版が1.31.xの場合、自動的にMainline版が選択されます。

Nginxのバージョン番号のつけられ方

Nginxのバージョン番号は、以下のルールでつけられています。

  • メジャー番号(1.xx.xx): NGINXは長年1で固定されています。
  • マイナー番号(1.偶数.xx):Stable版
  • マイナー番号(1.奇数.xx):Mainline版

Stable版が更新されると、すぐにMainline版も更新されます。
たとえば「1.30.0」というStable版がリリースされると、直後に「1.31.0」というMainline版がリリースされます。

そのため、Mainline版のバージョンがStable版よりも大きく(新しく)なるので、インストールする場合Mainline版が選択されるようになります。

Stable版を無効化したい場合

明示的にStable版を無効化し、Mainline版のみ使用したい場合は以下のコマンドを実行してください。

$ sudo dnf config-manager --disable nginx-stable

このコマンドを実行すると、リポジトリの[nginx-stable]部分にある「enabled=1」が「enabled=0」に変更され、無効化されます。

$ sudo cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

### 以下省略 ###

Nginxインストール

リポジトリの準備が整ったので、Nginxをインストールします。

$ sudo dnf update
$ sudo dnf install nginx

GPGキーの確認について

インストール中、初めてNginxリポジトリを利用する場合は、パッケージの署名確認(GPG keyのインポート)を求められます。

表示されたFingerprintが、以下の内容と一致していることを確認してください。

一致していれば「Is this ok [y/N]:」という質問に「y」を入力してください。

  • GPG key 0xB49F6B46: 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
  • GPG key 0xB49F6B46: 8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46
  • GPG key 0x8D88A2B3: 9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3

実際のインストール実行例

$ sudo dnf install nginx
Last metadata expiration check: 0:20:49 ago on Mon 25 May 2026 03:55:26 PM JST.
Dependencies resolved.
=============================================================================================================
 Package            Architecture        Version                            Repository                   Size
=============================================================================================================
Installing:
 nginx              x86_64              2:1.31.1-1.el10.ngx                nginx-mainline              1.1 M

Transaction Summary
=============================================================================================================
Install  1 Package

Total size: 1.1 M
Installed size: 3.6 M
Is this ok [y/N]: y
Downloading Packages:
[SKIPPED] nginx-1.31.1-1.el10.ngx.x86_64.rpm: Already downloaded                                            
nginx mainline repo                                                          9.6 kB/s |  12 kB     00:01    
Importing GPG key 0x7BD9BF62:
 Userid     : "nginx signing key <signing-key@nginx.com>"
 Fingerprint: 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
 From       : https://nginx.org/keys/nginx_signing.key
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0x8D88A2B3:
 Userid     : "nginx signing key <signing-key-3@nginx.com>"
 Fingerprint: 9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3
 From       : https://nginx.org/keys/nginx_signing.key
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0xB49F6B46:
 Userid     : "nginx signing key <signing-key-2@nginx.com>"
 Fingerprint: 8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46
 From       : https://nginx.org/keys/nginx_signing.key
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                     1/1 
  Running scriptlet: nginx-2:1.31.1-1.el10.ngx.x86_64                                                    1/1 
  Installing       : nginx-2:1.31.1-1.el10.ngx.x86_64                                                    1/1 
  Running scriptlet: nginx-2:1.31.1-1.el10.ngx.x86_64                                                    1/1 
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* https://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* https://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* https://nginx.com/products/

----------------------------------------------------------------------


Installed:
  nginx-2:1.31.1-1.el10.ngx.x86_64                                                                           

Complete!

インストール後の確認

インストールされたNginxのバージョンを確認します。

$ nginx -v
nginx version: nginx/1.31.1

無事に、Mainline版(1.31.1)がインストールされていることが確認できました。

自動起動設定

サーバー再起動時にもNginxが立ち上がるよう、起動と自動起動設定も行っておきます。

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

以上で、インストール作業は完了です。

コメント

タイトルとURLをコピーしました