UbuntuでNginxが起動しない時の確認項目まとめ
- 作成日 2026.06.02
- その他
UbuntuでNginxを起動しようとした際に「failed」「inactive」「emergency」などのエラーが表示されることがあります。原因は設定ファイルの記述ミス、ポート競合、権限問題、SSL設定の不備など様々です。ここではNginxが起動しない場合に確認すべきポイントを順番にまとめます。
Nginxの状態を確認する
まず現在の状態を確認します。
sudo systemctl status nginx正常な場合。
active (running)異常な場合。
failed
inactiveエラーメッセージが表示されるため内容を確認します。
設定ファイルの構文チェックを行う
Nginx起動失敗で最も多い原因です。
構文チェック。
sudo nginx -t正常例。
nginx: configuration file /etc/nginx/nginx.conf test is successful異常例。
unexpected "}"unknown directiveエラーが表示された行番号を修正します。
詳細ログを確認する
systemdログを確認します。
sudo journalctl -xeu nginxまたは。
sudo journalctl -u nginx -n 50最近のエラーのみ確認できます。
ログには起動失敗の具体的な原因が記録されています。
Nginxエラーログを確認する
Nginx独自のログも確認します。
sudo tail -100 /var/log/nginx/error.logリアルタイム監視。
sudo tail -f /var/log/nginx/error.logSSL証明書エラーや設定ミスが表示されることがあります。
80番・443番ポートの競合を確認する
他のサービスがポートを使用していると起動できません。
確認。
sudo ss -tulpn | grep ':80'HTTPSも確認。
sudo ss -tulpn | grep ':443'例。
apache2
docker-proxyなどが表示された場合は競合しています。
停止例。
sudo systemctl stop apache2その後Nginxを再起動します。
設定ファイルの記述ミスを確認する
特によくあるミス。
・セミコロン忘れ
・波括弧不足
・serverブロック閉じ忘れ
・listen記述ミス
・proxy_pass記述ミス
例。
誤り。
server_name example.com正しい記述。
server_name example.com;修正後。
sudo nginx -tで再確認します。
SSL証明書設定を確認する
HTTPS設定後に起動しなくなるケースがあります。
確認箇所。
ssl_certificate
ssl_certificate_key証明書存在確認。
ls -l /etc/letsencrypt/live/証明書が削除されている場合は起動に失敗します。
Let’s Encrypt更新。
sudo certbot renewsites-enabledの設定を確認する
リンク切れも発生しやすい原因です。
確認。
ls -l /etc/nginx/sites-enabled/正常例。
default -> /etc/nginx/sites-available/defaultリンク切れの場合は再作成します。
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/設定ファイル全体を検索する
読み込まれている設定確認。
sudo nginx -T全設定が表示されます。
重複設定や不要なserverブロックを確認できます。
特に以下のエラーが多発します。
duplicate listen
duplicate server_name権限エラーを確認する
Webルートや証明書へのアクセス権限不足で失敗することがあります。
権限確認。
ls -ld /var/www/html証明書確認。
ls -l /etc/letsencrypt/live/所有者やパーミッションを見直します。
Dockerとの競合を確認する
Dockerコンテナが80番や443番を占有しているケースがあります。
確認。
docker ps例。
0.0.0.0:80->80/tcp表示される場合はDockerがポートを使用中です。
停止。
docker stop コンテナ名Nginxを再インストールする
設定ファイル破損やパッケージ異常の場合。
削除。
sudo apt remove nginx nginx-common再インストール。
sudo apt install nginx起動。
sudo systemctl start nginxファイアウォール設定を確認する
起動はしているがアクセスできない場合。
UFW確認。
sudo ufw statusHTTP許可。
sudo ufw allow 80/tcpHTTPS許可。
sudo ufw allow 443/tcp起動テストの基本手順
トラブル発生時は以下の順番で確認すると効率的です。
- 状態確認
sudo systemctl status nginx- 構文チェック
sudo nginx -t- ログ確認
sudo journalctl -xeu nginx- ポート確認
sudo ss -tulpn- 再起動
sudo systemctl restart nginxまとめ
UbuntuでNginxが起動しない場合は、設定ファイルの記述ミスとポート競合が特に多い原因です。
確認すべきポイントは以下です。
・systemctl statusで状態確認
・nginx -tで構文チェック
・journalctlでエラーログ確認
・80番と443番の競合確認
・SSL証明書の存在確認
・sites-enabledのリンク確認
・DockerやApacheとの競合確認
まずは「sudo nginx -t」を実行すると、多くの起動トラブルを短時間で特定できます。
-
前の記事
UbuntuでDocker起動時にポート競合した時の解決方法 2026.06.01
-
次の記事
Ubuntuでディスク容量不足になった時の調査方法 2026.06.03
コメントを書く