Nginxエラーログを分析して「Connection Refused」をトラブルシューティングする方法

Nginxのエラーログを解釈し、「Connection Refused(接続拒否)」問題の根本原因を特定するためのベストプラクティスを学びます。ソケット設定やアップストリームサーバーのチェック方法を解説します。

Nginxで「Connection Refused」エラーが発生した場合、それは通常、クライアントまたはNginx自体が、接続しようとしているサービス(アップストリームサーバー)に到達できないことを意味します。

1. エラーログの確認

まず、Nginxのエラーログを確認して、どのアップストリームで問題が発生しているかを特定します。

tail -f /var/log/nginx/error.log

次のようなエラーが表示されるはずです: connect() failed (111: Connection refused) while connecting to upstream...

2. アップストリームサーバーの稼働確認

接続先となるバックエンドサービス(Node.js, Python, PHP-FPMなど)が実際に起動しているか確認してください。

# サービスがリッスンしているか確認
netstat -tulpn | grep <ポート番号>

3. ソケット設定の確認

アップストリームがUnixドメインソケットを使用している場合、ファイルパスが正しいか、またNginxユーザーにアクセス権限があるかを確認してください。

4. ファイアウォールの確認

サーバーのファイアウォール(ufwやiptables)が、Nginxからアップストリームへの通信をブロックしていないか確認してください。