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からアップストリームへの通信をブロックしていないか確認してください。