Rocky Linux 9 で Nginx をリバースプロキシとして構築する

Rocky Linux 9 に Nginx を導入し、バックエンドアプリの前段に立つリバースプロキシとして設定する手順を解説します。設定ファイルの構成から構文チェック、無停止リロードまで、本番運用を想定した実践的な流れで進めます。SSL終端は次回記事で扱います。

前提条件
  • Rocky Linux 9.x が動作するサーバ(root または sudo 権限)
  • バックエンドアプリが 127.0.0.1:3000 で起動済み
  • ドメインの DNS A レコードがサーバを指していること

1. Nginx のインストール

まず dnf でパッケージを導入します。下の「最新版を確認」ボタンで、現在のリポジトリ最新版と記事公開時点を比較できます。

bash
sudo dnf install -y nginx

インストール後、バージョンを確認します。実行結果(出力)のブロックにはコピーボタンを付けません — 出力を誤ってターミナルに貼り付ける事故を防ぐためです。

bash
nginx -v
出力
nginx version: nginx/1.20.1
注意

Rocky 9 標準リポジトリの Nginx はバージョンが古めです。最新版が必要な場合は nginx 公式リポジトリの追加を検討してください。

2. ディストリ別のパッケージ名

ディストリビューションによってコマンドとパッケージ名が異なります。

bash
sudo dnf install -y nginx
sudo systemctl enable --now nginx
bash
sudo apt update
sudo apt install -y nginx

3. 設定ファイルの構成

Nginx の設定ファイルは /etc/nginx/ 配下に置かれます。

/etc/nginx/
├── nginx.conf            # メイン設定。ここから他を include
├── conf.d/               # サイト別設定の置き場
│   └── reverse-proxy.conf # ← 本記事で作成するファイル
├── default.d/            # default サーバへの追記用
├── mime.types            # 拡張子と MIME タイプの対応表
└── ssl/                  # 証明書の配置(任意)

4. リバースプロキシの設定

新しい設定ファイルを作成します。黄色のハイライトは あなたの環境に合わせて書き換える箇所 です。冒頭の「環境変数」に値を入れると一括で置き換わります。

/etc/nginx/conf.d/reverse-proxy.confnginx
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
ノート

ハイライトされた location ブロックがリバースプロキシの中核です。proxy_set_header を省くとバックエンド側でクライアント IP が取得できなくなります。

5. 設定の適用

構文チェック

sudo nginx -t で設定ファイルの文法を検証します。

リロード

sudo systemctl reload nginx で無停止反映します。

動作確認

ブラウザでドメインにアクセスし、バックエンドの応答が返れば成功です。

6. 既存設定からの変更点

nginx.conf 側に 1 行追加するだけで conf.d が読み込まれます。

nginx.confdiff
 http {
     include       /etc/nginx/mime.types;
-    # サイト設定なし
+    include       /etc/nginx/conf.d/*.conf;
 }
ヒント

多くの場合 include /etc/nginx/conf.d/*.conf; は初期 nginx.conf に既に書かれています。grep conf.d /etc/nginx/nginx.conf で確認してから追記しましょう。

7. 次のステップ:SSL証明書

HTTPS 化には certbot を使います。こちらも鮮度チェックの対象です。

bash
sudo dnf install -y certbot fail2ban

インストール後、対象ドメインを指定して証明書を取得します。冒頭の「環境変数」でドメインを入力すると、このコマンドのドメイン部分も同時に書き換わります。

bash
sudo certbot --nginx -d your_domain.com
やってはいけないこと

本番サーバで systemctl restart nginx を多用しないこと。瞬断が発生します。設定反映は必ず reload を使ってください。

以上で Rocky Linux 9 上の Nginx リバースプロキシ構築は完了です。