[Linux]Nginx のインストール
公開日:2025-11-30
更新日:2025-11-30
更新日:2025-11-30
1. 概要
Nginx をインストールします。
2. Nginx のインストール
依存関係の問題を防ぐため、パッケージを最新の状態にします。
Nginx のインストール
コマンド
dnf check-update # 更新可能なパッケージの確認
sudo dnf update
Nginx のインストール
コマンド
sudo dnf install nginx3. Nginx の起動・停止
コマンド
systemctl status nginx # ステータスの確認
sudo systemctl start nginx # 起動
sudo systemctl stop nginx # 停止
sudo systemctl restart nginx # 再起動
sudo nginx -s reload # 設定ファイルのリロード4. Nginx の自動起動・自動起動の解除
OS を起動した時に、Nginx が自動的に起動するようにします。
自動起動の設定の確認
次のように表示されていれば、自動起動が有効になっています。
コマンド
sudo systemctl enable nginx # 自動起動
sudo systemctl disable nginx # 自動起動の解除
自動起動の設定の確認
コマンド
systemctl list-unit-files | grep nginx
結果は、STATE(現在の状態)、PRESET(デフォルト) の順で表示されます。次のように表示されていれば、自動起動が有効になっています。
実行結果
nginx.service enabled disabled5. ファイアウォールの設定
永続的に80番ポートを開けます。
その他の使用方法については、「ファイアウォールの使用方法」をご確認ください。
その他の使用方法については、「ファイアウォールの使用方法」をご確認ください。
コマンド
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload
# ファイアウォールの確認(ports: 80/tcp となっていれば OK)
sudo firewall-cmd --list-all
6. ポートフォワーディングの設定
Windows から VirtualBox の仮想マシンの Nginx にアクセスできるようにするため、
「Mintty で SSH を使って Linux に接続する」と同様に、ポートフォワーディングの設定をします。
今回は、8080 ポートへのアクセスを VM の 80 ポートへ転送するようにしました。

Windows のブラウザから http://localhost:8080/ にアクセスして、Nginx の Test Page が表示されれば完了です。
「Mintty で SSH を使って Linux に接続する」と同様に、ポートフォワーディングの設定をします。
今回は、8080 ポートへのアクセスを VM の 80 ポートへ転送するようにしました。

Windows のブラウザから http://localhost:8080/ にアクセスして、Nginx の Test Page が表示されれば完了です。
7. テストページの追加
7.1 nginx.conf のパスの確認
Nginx がコンパイルされた時のオプションから、nginx.conf のパスがわかります。
コマンド
nginx -V
実行結果
nginx version: nginx/1.26.3
built with OpenSSL 3.2.2 4 Jun 2024
TLS SNI support enabled
configure arguments:
--prefix=/usr/share/nginx
--sbin-path=/usr/sbin/nginx
--modules-path=/usr/lib64/nginx/modules
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
(省略)
--conf-path で、/etc/nginx/nginx.conf にあることがわかります。7.2 ドキュメントルートの確認
nginx.conf の内容を表示して、ドキュメントルートを確認します。
ドキュメントルートに test.html を作成します。
保存後に、http://localhost:8080/test.html にアクセスして、「test」と表示されれば OK です。
コマンド
cat /etc/nginx/nginx.conf
実行結果(抜粋)
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
}
/usr/share/nginx/html がドキュメントルートです。ドキュメントルートに test.html を作成します。
コマンド
sudo vi /usr/share/nginx/html/test.html
内容は「test」だけで OK です。保存後に、http://localhost:8080/test.html にアクセスして、「test」と表示されれば OK です。
8. nginx.conf について
8.1 server ディレクティブ
1つの仮想サーバに対する設定です。
以前は1つのドメインを1台の物理的なサーバで処理していましたが、リクエストに Host ヘッダが追加され、複数のドメインに対応できるようになりました。
これにより、複数のサーバがあるように見えるため、1つの設定を仮想サーバと呼ばれています。
VirtualBox などの仮想マシンとは関係ありません。
server ディレクティブは複数定義することができます。
リクエストされた Host(ドメイン名やIPアドレス)とポートが一致する server ディレクティブが使用されます。
以前は1つのドメインを1台の物理的なサーバで処理していましたが、リクエストに Host ヘッダが追加され、複数のドメインに対応できるようになりました。
これにより、複数のサーバがあるように見えるため、1つの設定を仮想サーバと呼ばれています。
VirtualBox などの仮想マシンとは関係ありません。
server ディレクティブは複数定義することができます。
リクエストされた Host(ドメイン名やIPアドレス)とポートが一致する server ディレクティブが使用されます。
8.1 listen
仮想サーバのポート番号を指定します。
「[::]:80」は、IPv6用です。
「[::]:80」は、IPv6用です。
8.2 server_name
ドメイン名やIPアドレスを指定します。
「_」を指定すると、他の server ディレクティブにマッチングしなかった場合にマッチします。
「_」を指定すると、他の server ディレクティブにマッチングしなかった場合にマッチします。
8.3 root
ドキュメントルートです。絶対パスで指定します。
相対パスでも指定できますが、基準となるパスがわかりづらいため、絶対パスが推奨です。
ちなみに相対パスの基準となるパスは、Nginx のインストールディレクトリです。
nginx -V の「--prefix」で確認できます。
相対パスでも指定できますが、基準となるパスがわかりづらいため、絶対パスが推奨です。
ちなみに相対パスの基準となるパスは、Nginx のインストールディレクトリです。
nginx -V の「--prefix」で確認できます。
実行結果
(省略)
--prefix=/usr/share/nginx
(省略)8.4 include
指定したファイルを読み込みます。
ファイルの内容が挿入されるイメージとなるため、
例えば server ディレクティブの中で include した場合は、include されるファイルには server ディレクティブは不要です。
ファイルの内容が挿入されるイメージとなるため、
例えば server ディレクティブの中で include した場合は、include されるファイルには server ディレクティブは不要です。

