今まで何度も使ったことある設定なのに、502 Bad Gatewayになった。

エラーログには以下が出ているが、socketファイルは存在して、パーミッションも問題なし。

[crit] 27195#0: *2 connect() to unix:/tmp/unicorn-example.socket failed (2: No such file or directory) while connecting to upstream, client: IPアドレス, server: example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/tmp/unicorn-example.socket:/", host: "example.com"

困り果てていたら、RedmineをCentOS 7上で動かすーUnicornとNginx編 - ソフトウェアエンジニアリング - Torutk に辿り着いた。
なんと、NginxとUnicorn間で/tmpを共有できないとな。

試しにshared/tmpに置いてみたらあっさり動いた。


後日またエラーになってて、socketファイルをみたら775になってた。(のでnginxユーザーからアクセスできなかった)
777にしたら動いたけど、原因不明。

Ansibleで

- name: shared
  file: path=/var/www/{{ item }}/shared state=directory owner={{ user }} group={{ user }} mode=0775 recurse=yes

をやってたせいだった。