Nginxの状況を確認するためには、以下のコマンドを使用します。これらのコマンドを活用することで、Nginxの稼働状況や設定の問題を調査できます。
1. Nginxのサービス状況を確認する
Nginxが動作しているか確認する:
sudo systemctl status nginxactive (running) が表示されれば、Nginxは正常に稼働中です。
inactive や failed の場合は、問題があります。
Nginxを再起動する:
sudo systemctl restart nginxNginxを停止/開始する:
sudo systemctl stop nginx
sudo systemctl start nginx2. 設定ファイルのチェック
設定ファイルにエラーがないか確認:
sudo nginx -t出力例:
OKの場合:nginx: configuration file /etc/nginx/nginx.conf test is successful
エラーがある場合: エラー内容が表示されます。nginx: [emerg] "server" directive is not allowed here
設定ファイルの場所を確認:
nginx -V 2>&1 | grep configureここで、--conf-path に設定ファイルのパスが表示されます(通常は /etc/nginx/nginx.conf)。
3. ポートの使用状況を確認
Nginxがリッスンしているポートを確認:
sudo netstat -tuln | grep nginxまたは
sudo ss -tuln | grep :80出力例:
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:*ポートが正しく開いているか確認:
curl -I http://localhost正常に動作していれば、HTTPステータスコード(例: 200 OK)が返ります。
4. ログを確認
エラーログの確認:
sudo tail -f /var/log/nginx/error.logエラーの詳細情報を確認できます。
アクセスログの確認:
sudo tail -f /var/log/nginx/access.logサーバーへのリクエスト情報が表示されます。
5. 現在のNginxの動作状況を確認
動作中のプロセスを確認:
ps aux | grep nginx出力例:
root 1234 0.0 0.1 16208 1284 ? Ss 12:00 0:00 nginx: master process /usr/sbin/nginx
www-data 1235 0.0 0.2 16208 2048 ? S 12:00 0:00 nginx: worker process実際に使用されているバイナリを特定
sudo ls -l /proc/<PID>/exe6. Nginxの設定を一覧表示
現在有効な設定ファイルを一覧表示:
sudo nginx -Tすべての設定ファイル(nginx.conf や sites-enabled 内の設定)を一括で確認できます。
7. 再ロード(設定変更後)
設定ファイルを変更した後、再起動せずに設定を反映:
sudo systemctl reload nginx8. ファイアウォールの設定を確認
Nginxのポート(80, 443)が開放されているか確認:
sudo ufw status出力結果の例:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)Status: active ファイアウォール(UFW)は有効で、現在動作中であることを示しています。
ルールの一覧To: 許可されているサービスやポート。Action: 許可されているか (ALLOW) または拒否されているか (DENY)。From: 接続元。Anywhere はどこからの接続でも許可されていることを意味します。
現在のルール:
OpenSSH:SSH (ポート22) への接続を許可しています。これはサーバーにリモートログインするために必要です。
Nginx Full:Nginxが使用するHTTP (ポート80) と HTTPS (ポート443) の両方が許可されています。
OpenSSH (v6):IPv6でのSSH接続を許可しています。
Nginx Full (v6):IPv6でのHTTPとHTTPS接続を許可しています。
必要に応じてポートを開放
sudo ufw allow 'Nginx Full'sudo ufw allow 'Nginx Full' は、UFW (Uncomplicated Firewall) を使用して、Nginxが必要とするポート(通常、HTTPポート80とHTTPSポート443)を許可するコマンドです。
sudo ufw allowの出力が Status: inactive となっている場合、UFW(Uncomplicated Firewall)は現在無効化されています。この状態ではファイアウォールによる通信制御は行われていません。そのため、Nginxへの接続がブロックされる原因にはなりません。
ファイアウォールが無効化されている状態では、Nginxが動作している場合、ポート80や443への通信がファイアウォールによって制限されることはありません。外部からサーバーのIPアドレスにアクセスして、Nginxが正常に応答するか確認してください。
HTTPS: https://<サーバーIP>
HTTP: http://<サーバーIP>
まとめ
| コマンド | 用途 |
|---|---|
sudo systemctl status nginx | サービスの状況確認 |
sudo nginx -t | 設定ファイルのエラーチェック |
curl -I http://localhost | サーバー応答の確認 |
sudo tail -f /var/log/nginx/error.log | エラーログの確認 |
sudo nginx -T | 全設定ファイルの一覧表示 |
これらのコマンドを使えば、Nginxの動作や設定状況を簡単に確認できます。問題が発生した場合は、設定やログを重点的に調査してください。
コメント