Nginxの状況を確認するためには、以下のコマンドを使用します。これらのコマンドを活用することで、Nginxの稼働状況や設定の問題を調査できます。
1. Nginxのサービス状況を確認する
Nginxが動作しているか確認する:
sudo systemctl status nginx
active (running)
が表示されれば、Nginxは正常に稼働中です。
inactive
や failed
の場合は、問題があります。
Nginxを再起動する:
sudo systemctl restart nginx
Nginxを停止/開始する:
sudo systemctl stop nginx
sudo systemctl start nginx
2. 設定ファイルのチェック
設定ファイルにエラーがないか確認:
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>/exe
6. Nginxの設定を一覧表示
現在有効な設定ファイルを一覧表示:
sudo nginx -T
すべての設定ファイル(nginx.conf
や sites-enabled
内の設定)を一括で確認できます。
7. 再ロード(設定変更後)
設定ファイルを変更した後、再起動せずに設定を反映:
sudo systemctl reload nginx
8. ファイアウォールの設定を確認
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の動作や設定状況を簡単に確認できます。問題が発生した場合は、設定やログを重点的に調査してください。
コメント