今まで何度も使ったことある設定なのに、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
をやってたせいだった。