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のインストールは実際のサイト設定の準備が整います。