Nginxインストールガイド:初心者向けステップバイステップ手順

高性能ウェブサーバーの初期設定をマスターしましょう!この包括的なガイドでは、Debian/Ubuntu および CentOS/RHEL システムの両方での Nginx の正確なステップバイステップのインストール手順を初心者向けに解説します。サービスの開始、停止、検証のための必須コマンド、および即座にアクセスできるようにするための重要なファイアウォール設定について学びます。数分で Nginx ウェブサーバーを稼働させましょう。

Nginxインストールガイド:初心者のためのステップバイステップ

NginxをWebサーバー、リバースプロキシ、ロードバランサー、またはキャッシュとして使用するには、まずNginxがインストールされ、実行され、到達可能である必要があります。このNginxインストールガイドでは、Debian/UbuntuおよびRHEL系Linuxシステムでの基本的なパッケージマネージャーによるセットアップを説明し、サービスの確認方法とファイアウォールの開放方法を示します。

以下のコマンドは、systemdベースのサーバーとsudoアクセス権を持つユーザーを前提としています。


前提条件

開始する前に、以下を準備してください:

  • Ubuntu、Debian、RHEL、CentOS Stream、Rocky Linux、AlmaLinux、または類似のディストリビューションを実行しているサーバーまたは仮想マシン。
  • sudo権限を持つ非rootユーザー。
  • SSHまたはローカルターミナルによるシェルアクセス。

Debian/Ubuntuシステムへのインストール

Debianベースのシステムでは、Nginxはデフォルトのリポジトリから利用可能です。まずパッケージインデックスを更新して、aptが最新のパッケージメタデータを認識できるようにします。

ステップ1:パッケージリストの更新

以下のコマンドを実行して、ローカルパッケージインデックスを更新します:

sudo apt update

ステップ2:Nginxのインストール

apt installコマンドを使用して、Nginxとその依存関係をダウンロードしてインストールします:

sudo apt install nginx

ステップ3:インストール状態の確認

インストールが完了すると、通常サービスは自動的に開始されます。systemctlを使用して状態を確認できます:

sudo systemctl status nginx

サービスがactive (running)であることを示す出力が表示されるはずです。

CentOS/RHELシステムへのインストール

RHEL系システムでは、現在のリリースではdnfを、古いリリースではyumを使用します。一部のディストリビューションはNginxを独自のリポジトリに含んでいますが、他のディストリビューションではEPELや公式ベンダーリポジトリが必要な場合があります。dnf install nginxでパッケージが見つからない場合は、EPELを有効にするか、ディストリビューションのNginxパッケージに関する注意事項を確認してください。

ステップ1:EPELリポジトリのインストール

システムにEPELが必要な場合は、最初にインストールします。

CentOS/RHEL 7の場合:

sudo yum install epel-release

CentOS/RHEL 8/9の場合(DNFを使用):

sudo dnf install epel-release

ステップ2:Nginxのインストール

次に、yumまたはdnfを使用してNginxをインストールします:

# yumを使用(古いシステム)
sudo yum install nginx

# またはdnfを使用(新しいシステム)
sudo dnf install nginx

ステップ3:Nginxサービスの起動と有効化

Debian/Ubuntuとは異なり、RHELベースのシステムではNginxはインストール後に自動的に起動しない場合があります。手動で起動し、システム起動時に実行されるように有効化する必要があります:

# サービスを即座に起動
sudo systemctl start nginx

# 再起動時に起動するように設定
sudo systemctl enable nginx

# 状態を確認
sudo systemctl status nginx

ファイアウォール設定:HTTPとHTTPSの許可

インストール後、ファイアウォールがWebトラフィックを許可していることを確認してください。サービスが実行中でもポート80または443がブロックされていると、サーバー外部からのブラウザチェックは失敗します。

Ubuntu/DebianでUFWを使用

UbuntuのNginxパッケージは通常、UFWアプリケーションプロファイルを登録します。近くTLSを追加する予定がある場合は、HTTPとHTTPSの両方を開放します。

# 利用可能なアプリケーションプロファイルを一覧表示
sudo ufw app list

# 標準的なWebトラフィック(HTTP/HTTPS)を許可
sudo ufw allow 'Nginx Full'

# ファイアウォールをリロードして変更を適用
sudo ufw reload

RHEL系システムでFirewalldを使用

Firewalldはゾーンを使用してルールを管理します。以下のコマンドは、標準のhttpおよびhttpsサービスをアクティブなデフォルトゾーンに追加します。

# HTTPトラフィックを許可(ポート80)
sudo firewall-cmd --permanent --add-service=http

# HTTPSトラフィックを許可(ポート443)
sudo firewall-cmd --permanent --add-service=https

# ファイアウォールルールをリロード
sudo firewall-cmd --reload

Nginxが動作していることを確認

パッケージがインストールされファイアウォールが開放されたら、Nginxがデフォルトページを提供していることを確認します。

方法1:Webブラウザでの確認

好みのWebブラウザを開き、サーバーのIPアドレスまたはドメイン名に移動します:

http://YOUR_SERVER_IP_ADDRESS

成功すると、デフォルトのNginxウェルカムページが表示されるはずです。正確なテキストとファイルパスはディストリビューションによって異なります。

方法2:コマンドラインでの確認

サーバー自体からcurlを使用して、ローカルリスナーを確認します:

curl http://localhost

このコマンドはHTMLを返すはずです。ローカルで失敗する場合は、systemctl status nginx/var/log/nginx/error.logを確認してから、DNSやクラウドファイアウォールルールのトラブルシューティングを行ってください。

重要なNginx管理コマンド

インストール後、通常はsystemctlでNginxを管理します:

アクション コマンド
起動 sudo systemctl start nginx
停止 sudo systemctl stop nginx
再起動(停止→起動) sudo systemctl restart nginx
リロード(ダウンタイムなしで設定変更を適用) sudo systemctl reload nginx
状態確認 sudo systemctl status nginx
自動起動を無効化 sudo systemctl disable nginx

リロード前に設定構文をテストします:

sudo nginx -t
sudo systemctl reload nginx

この習慣により、セミコロンの欠落、不正なインクルードパス、重複したlistenの競合をトラフィックに影響を与える前に発見できます。

次のステップ:サーバーブロックの作成

デフォルト設定は、パッケージが提供するウェルカムページを提供します。Debian/Ubuntuでは、Webファイルは通常/var/www/htmlに配置されます。RHEL系システムでは、デフォルトのルートは多くの場合/usr/share/nginx/htmlです。

次のステップは、ドメイン用のサーバーブロックを作成することです。Debian/Ubuntuのレイアウトでは、多くの場合/etc/nginx/sites-available/にファイルを作成し、/etc/nginx/sites-enabled/へのシンボリックリンクを作成します。RHEL系のレイアウトでは、/etc/nginx/conf.d/以下のファイルを使用することが多いです。

その後、TLSを追加し、ドメインのDNSレコードをサーバーに向け、リロード前にsudo nginx -tを実行します。これでNginxのインストールは実際のサイト設定の準備が整います。