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=を適当なポートへ変更

これで上手く行くようになりました。