Nginx+uwsgiでfailed (111: Connection refused)エラーを解決した話

Nginx+uwsgiでWebアプリを作ってるんだけど、一つのサーバーで複数ドメインで動かそうとしたらすごいハマったのでメモ。

具体的には以下のエラーが出てなかなか解決出来なかった。

failed (111: Connection refused) while connecting to upstream

何だこれマジ意味わからんと思ってググりながら、uwsgi.iniの権限を変えたりproxy設定してみたりNginxやuwsgiを再起動したりipv6対応したりsocketの権限やiniファイル内のchmod-socketを660, 664, 666に変えてみたりといろいろやっても全然解決しなくてとにかくつらかった。流れ続けるエラーログを恨めしげに眺めながら、引っ掛かった英語のページとか見てたら権限の問題ってのが書かれてて、とりあえずそこに照準を当てていじったら何とか解決した。

結果としてはsockファイルが入ってるディレクトリの所有者がrootになってたのが原因だった。nginxに変更したら解決した。

…でも、複数ドメインじゃなくて単一ドメインで動かしてたときはこのままでも普通に動いたんですよ。それだけがどうしても解せない。

土日潰れたけどWebアプリ作ったら最終的には絶対に必要になる作業なのでやって良かったと思った。もっと早く解決できたらさらに良かったと思った。
土日潰れたけど。