Jenkinsで502 Bad Gatewayが出る問題を解決
先の投稿(Jenkinsを導入してGithub, Bitbucketから自動ビルドを可能にするまで)で無事Jenkinsを導入することに成功し、その手順を記した訳ですが、道のりはそれなりに険しかったです。
ここでは、その中で苦戦した502 Bad Gatewayを取り上げます。
502 Bad Gatewayが出てしまう。
Jenkinsのインストールと設定が終わり、いざアクセスして見よう!というときになぜか502 Bad Gatewayが出るという事態におちいりました。
色々nginxやtomcat, jenkinsを再起動したりしているうちに繋がるようになる・・・iptablesは関係なし・・・という所まで突き止めましたが、nginxのログを見ても、以下のようなエラーが出るだけでさっぱり分からない・・・ぐぐっても謎という状態でした。
2013/12/14 23:49:54 [error] 1403#0: *75 connect() failed (111: Connection refused) while connecting to upstream, client: 121.103.253.236, server: tsukaby.com, request: "GET /jenkins/ HTTP/1.1", upstream: "http://[::1]:49100/jenkins/", host: "tsukaby.com"
ここでふと、そもそもちゃんとサービス起動してるの?と思い以下を実行。
lsof -i:(Jenkinsポート)
結果がないので、LISTENしてない・・・?もういっちょ確認。
telnet localhost (Jenkinsポート)
Connection refusedされます。
初めからjenkinsのログを見なかった自分が間違っていました・・・。問題はnginxではなく、Jenkinsだったようです。
tail -n300 /var/log/jenkins/jenkins.log | less
12 15, 2013 1:09:53 午前 org.eclipse.jetty.util.log.JavaUtilLog warn
警告: FAILED Ajp13SocketConnector@0.0.0.0:8009: java.net.BindException: アドレス
は既に使用中です
java.net.BindException: アドレスは既に使用中です
at java.net.PlainSocketImpl.socketBind(Native Method)
Tomcatでも8009ポートを利用しているので、ここと重複していた・・・というオチでした。
vi /etc/sysconfig/jenkins
JENKINS_AJP_PORT=を適当なポートへ変更
これで上手く行くようになりました。