Jenkinsで502 Bad Gatewayが出る問題を解決
2013/12/20
先の投稿(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=を適当なポートへ変更
これで上手く行くようになりました。