LinuxにNginxをインストールして使う入門・Ubuntu・WSL2でウェブサーバーを構築して初めてのHTMLページを表示する方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > LinuxにNginxをインストールして使う入門・Ubuntu・WSL2でウェブサーバーを構築して初めてのHTMLページを表示する方法
「Linuxでウェブサーバーを作ってみたいけど、何から始めればいいかわからない。」
「Apacheという名前は聞いたことがあるけど、Nginxとどう違うの?」

こうした疑問は、Linux入門者がサーバー構築に踏み込む最初のステップでよく出てきます。
NginxはApacheと並ぶ代表的なウェブサーバーソフトウェアで、特に高負荷・高速応答が求められる現代のサーバー環境で広く使われています。

この記事では、LinuxにNginxをインストールしてウェブサーバーを立ち上げる手順を、Ubuntu・WSL2環境を前提に初心者向けに解説します。
インストールからサービス起動、ファイアウォール設定、HTMLファイルの配置と動作確認まで、一連の流れを順番に追っていきましょう。

実行環境: Ubuntu 24.04 LTS(WSL2・VPS共通手順)で動作確認済み

この記事のポイント

・Nginxは `apt install nginx` の1コマンドでインストールできる
・`systemctl start nginx` でサービスを起動し、ブラウザでHTMLを確認できる
・WSL2ではfirewall設定が不要、VPSではfirewall-cmdかufw設定が必要
・コンテンツはデフォルトで `/var/www/html/` に配置する


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

NginxとApache、何が違うのか?

Nginxを学ぶ前に、なぜNginxが選ばれるのかを理解しておきましょう。
代表的なウェブサーバーには「Apache(アパッチ)」と「Nginx(エンジンエックス)」の2種類があります。

項目 Apache Nginx
登場年 1995年 2004年
アーキテクチャ プロセス・スレッド型 イベント駆動型
大量アクセスへの強さ やや弱い(C10K問題) 強い(高並列処理が得意)
メモリ使用量 接続数に比例して増加 少ない(非同期処理で効率的)
設定の柔軟性 .htaccessで手軽に変更可能 一元管理型、シンプルな構文
主な用途 PHPアプリ・共有ホスティング リバースプロキシ・静的配信・API

Nginxは「同時接続数が多い環境でも安定して動く」という特性があり、今やWordPressを含む多くのシステムでも採用されています。
実務でVPSやクラウドを扱うエンジニアがNginxを触ったことがない、というケースはほぼありません。
入門段階でNginxの扱いを身につけておくと、クラウドやVPS環境でのサーバー構築に直結するスキルが得られます。

Nginxをインストールする

1. パッケージリストを更新する

インストールの前に、aptのパッケージリストを最新にします。
これにより、最新バージョンのNginxを取得できます。

# パッケージリストを更新する sudo apt update # 実行例の出力 Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB] ... Reading package lists... Done

2. Nginxをインストールする

aptコマンドでNginxをインストールします。

# Nginxをインストールする(-y で確認プロンプトを自動承認) sudo apt install -y nginx # install: fetch and set up nginx package # インストール完了後にバージョンを確認する nginx -v # 実行例の出力 nginx version: nginx/1.24.0 (Ubuntu)

バージョンが表示されれば、インストール成功です。

なお `nginx-extras` パッケージを追加するとLuaスクリプトや追加モジュールが使えますが、入門段階では `nginx` パッケージだけで十分です。

3. Nginxのサービスを起動する

インストール直後は、Nginxが自動で起動する場合とそうでない場合があります。
`systemctl` コマンドで状態を確認し、起動・自動起動を設定しましょう。

# Nginxのサービス状態を確認する sudo systemctl status nginx # サービスが停止していたら起動する sudo systemctl start nginx # OS起動時に自動起動するよう設定する(enable: persist across reboots) sudo systemctl enable nginx # 起動後に再度状態を確認する sudo systemctl status nginx # 実行例の出力 * nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Mon 2026-06-23 09:00:12 JST; 3s ago Process: 1234 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Main PID: 1235 (nginx)

「Active: active (running)」と表示されればNginxが動いています。

動作を確認する(ブラウザでHTMLページを開く)

WSL2環境の場合

WSL2はWindowsのファイアウォールとポート転送を利用しているため、追加のファイアウォール設定は原則不要です。
Windowsのブラウザで以下のURLにアクセスしてみましょう。

# WSL2のLinuxターミナル上でIPアドレスを確認する hostname -I # 実行例の出力 172.22.185.xxx # Windowsブラウザで以下にアクセスする(localhostでも動く場合が多い) # http://localhost/ # または http://172.22.185.xxx/

Nginxのデフォルトページ(「Welcome to nginx!」と書かれたページ)が表示されれば成功です。

【注意】WSL2のバージョンによってはWSL側のIPアドレスが起動のたびに変わります。
`localhost` でアクセスできない場合は、`hostname -I` で確認したIPアドレスをブラウザに直接入力してください。

VPS・クラウド環境の場合

VPSやクラウドサーバーでは、ファイアウォールのポート80番(HTTP)を開放する必要があります。

# firewall-cmdでHTTP(ポート80)を開放する(Rocky Linux / RHEL系) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload # ufwを使う場合(Ubuntu系) sudo ufw allow 'Nginx HTTP' sudo ufw status # ufwの出力例 Status: active To Action From -- ------ ---- Nginx HTTP ALLOW Anywhere

設定後、ブラウザでサーバーのIPアドレス(例: `http://203.0.113.10/`)にアクセスしてNginxのデフォルトページを確認します。

自分のHTMLファイルを表示する

1. ドキュメントルートの場所を確認する

Nginxのデフォルト設定では、Webコンテンツ(HTMLファイルなど)を `/var/www/html/` ディレクトリに配置します。

# デフォルトのHTMLファイルを確認する ls -la /var/www/html/ # 実行例の出力 total 12 drwxr-xr-x 2 root root 4096 Jun 23 09:00 . drwxr-xr-x 3 root root 4096 Jun 23 09:00 .. -rw-r--r-- 1 root root 615 Jun 23 09:00 index.nginx-debian.html

2. 自作のindex.htmlを作成して配置する

自分のHTMLファイルを作成して、デフォルトページを置き換えてみましょう。

# シンプルなHTMLファイルを作成する sudo bash -c 'cat > /var/www/html/index.html << EOF Nginx入門ページ

はじめてのNginxページ

Linux上のNginxでHTMLが表示できました。

EOF' # 作成されたファイルを確認する cat /var/www/html/index.html

ブラウザで再度アクセスすると、「はじめてのNginxページ」と表示されるはずです。

実際の運用では `/var/www/html/` 以下にサブディレクトリを作ってプロジェクトごとに整理することも多いですが、まずは動く感触をつかむことが先決です。

3. ファイルのパーミッションを確認する

HTMLファイルがブラウザから読み込めない場合は、パーミッション(ファイルアクセス権限)が問題のことがあります。

# パーミッションを確認する ls -la /var/www/html/index.html # 正常な出力例(644が一般的) -rw-r--r-- 1 root root 215 Jun 23 09:05 /var/www/html/index.html # もし権限が不足している場合は修正する sudo chmod 644 /var/www/html/index.html

Nginxの設定ファイルを確認する

Nginxの動作は設定ファイルで制御されています。
初心者のうちは細かい設定は不要ですが、どこに何があるかを把握しておくと後々役立ちます。

ファイル・ディレクトリ 内容
/etc/nginx/nginx.conf メインの設定ファイル
/etc/nginx/sites-available/ バーチャルホスト設定ファイルの保管場所
/etc/nginx/sites-enabled/ 有効化されたバーチャルホスト(sites-availableへのシンボリックリンク)
/var/www/html/ デフォルトのドキュメントルート(HTMLファイル置き場)
/var/log/nginx/access.log アクセスログ
/var/log/nginx/error.log エラーログ(障害時はまずここを確認する)

# 設定ファイルの構文チェックをする(変更後は必ず実行する) sudo nginx -t # test: validate nginx.conf syntax before reload # 正常な出力例 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 設定を変更した後はNginxをリロードして反映させる(reload: apply without downtime) sudo systemctl reload nginx

【注意】設定ファイルを変更したら、必ず `nginx -t` で構文チェックをしてからリロードすること。
構文エラーがある状態でリロードすると、本番環境でサービスが止まる原因になります。

トラブルシュート・よくあるエラー対処

「Job for nginx.service failed」が出た場合

Nginx起動時にエラーが出た場合、まず設定ファイルの構文エラーを疑いましょう。

# エラーの詳細を確認する sudo systemctl status nginx # Nginxのエラーログを確認する sudo tail -30 /var/log/nginx/error.log # 設定ファイルの構文チェックをする sudo nginx -t

ブラウザで「接続できない」と表示される場合

Nginxが起動しているのにブラウザからアクセスできない場合は、ポートが開いていない可能性があります。

# Nginxがポート80番でListenしているか確認する sudo ss -tlnp | grep nginx # 正常な出力例 LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1235,fd=6)) # ファイアウォールの状態を確認する(Ubuntu系) sudo ufw status # ファイアウォールの状態を確認する(Rocky Linux系) sudo firewall-cmd --list-all

「403 Forbidden」が表示される場合

ファイルのパーミッションか、index.htmlが存在しない場合に起こりやすいエラーです。

# ドキュメントルートにファイルが存在するか確認する ls -la /var/www/html/ # パーミッションを修正する sudo chmod 644 /var/www/html/index.html # ディレクトリのパーミッションも確認する sudo chmod 755 /var/www/html/

WSL2で「localhost」に繋がらない場合

WSL2環境では、WindowsのブラウザからLinux側のポートへアクセスするためにポートフォワーディングが有効になっている必要があります。
Windows 11の一部環境ではこの設定が自動で有効にならないことがあります。

# WSL2のIPアドレスを調べてブラウザで直接指定する hostname -I # 出力例: 172.22.185.10 # Windowsブラウザのアドレスバーに以下を入力する # http://172.22.185.10/ # WSL側でポート80番がListenされているか確認する(listen: check open ports) sudo ss -tlnp | grep :80

この方法でアクセスできた場合、`localhost` 経由の問題はWSL2のネットワーク設定(`/etc/wsl.conf` の `networkingMode`)に起因していることが多いです。

本記事のまとめ

LinuxへのNginxインストールから動作確認までの手順を整理します。

やりたいこと コマンド
パッケージリストを更新する sudo apt update
Nginxをインストールする sudo apt install -y nginx
バージョンを確認する nginx -v
サービスを起動する sudo systemctl start nginx
自動起動を設定する sudo systemctl enable nginx
サービスの状態を確認する sudo systemctl status nginx
ファイアウォールにHTTPを許可する(Ubuntu) sudo ufw allow 'Nginx HTTP'
設定ファイルの構文チェックをする sudo nginx -t
設定をリロードする sudo systemctl reload nginx
エラーログを確認する sudo tail -30 /var/log/nginx/error.log

ウェブサーバーを自分の手で動かすという経験は、Linuxを「使う」から「動かす」への大きな一歩です。
Nginxが動いたら、次は設定ファイルをカスタマイズしたり、PHPと連携させてみたりと、応用の幅がぐっと広がります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンド学習の先にある「サーバーをゼロから組み立てる力」を、初心者が迷わない順序で学べる一冊です。
無料マニュアルを受け取る >>

次に読む記事(実務スキルへのステップアップ)

Nginxの基本がつかめたら、以下の実務記事でLinuxのサーバー管理スキルをさらに深めてください。

systemctlコマンドの使い方|サービスの起動・停止・自動起動設定
firewall-cmdコマンドでポートを開放・管理する方法|ゾーン・サービス・永続化の使い分け
sudoコマンドでroot権限を安全に実行する方法|visudoの設定からログ確認まで
logrotateでLinuxのログを自動ローテーションする方法|設定ファイルの書き方とトラブル対処
SSHのポート番号を変更する方法|sshd_configの設定からfirewalld・SELinux対応まで
nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も
ApacheとNginxの違いと使い分け|「なぜ選んだか」を説明できますか?

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。