地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

Railsとunicorn&nginxで502 bad wayエラーが出たが解決

スポンサーリンク

f:id:ihatov08:20160928152139j:plain

Railsとunicorn&nginxで502 bad wayエラーが出ましたが、解決しました!

どうやらunicornのsockがお互いに向き合っていなかった

[vagrant@localhost current]$ bundle exec rake unicorn:start RAILS_ENV=development をしてもブラウザで502 bad wayが出ました。

[vagrant@localhost current]$ curl --head http://192.168.33.10 をしても、502 bad wayと出ます。

nginxのログを見ることに。

[vagrant@localhost ~]$ sudo tail /var/log/nginx/*.log

2016/09/28 06:03:54 [crit] 10109#10109: *40 connect() to unix:/tmp/unicorn.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.33.10, server: , request: "HEAD / HTTP/1.1", upstream: "http://unix:/tmp/unicorn.sock:/500.html", host: "192.168.33.10"

どうやら/tmp/unicorn.sockがないと言われています。

本当にないのか/tmpを見てみることに。

[vagrant@localhost ~]$ cd /tmp
[vagrant@localhost tmp]$ ls
ks-script-9stvCP      unicorn.pid
ks-script-9stvCP.log  app_name.sock
redis-2.8.19          vboxguest-Module.symvers
redis-2.8.19.tar.gz   yum.log

確かにない!その代わりにapp_name.sockがありました。

nginxの設定ファイルを見てみます。

[vagrant@localhost]$ cd /etc/nginx/conf.d

[vagrant@localhost conf.d]$ ls
default.conf  local.conf

local.confにnginxの設定が記述してあります。 思った通り向先が違いました。 今回はファイル名変更ではなく、設定ファイルを変更しました。

[vagrant@localhost conf.d]$ sudo vi local.conf

upstream unicorn {
 # server unix:/tmp/unicorn.sock; から変更
  server unix:/tmp/app_name.sock;
}

これで動きました!