軸はこーしろーからいきますよ

基本的にただの忘備録

Nginx 504 Gateway timeout

504 Gateway timeoutがでたー!

Nginx+unicorn+rails@ubuntu12.04の(最低限動く)環境構築 - 軸はこーしろーからいきますよの後の話です.
Nginx+Unicorn+Railsでグラフ構造上で色々計算する(ダイクストラ法とか)ツールを
作って実験してたんですが,でかいグラフデータを投げた時にNginxが
タイムアウトしてしまいました.その時にした対処です.

Unicornの設定

とりあえずUnicornの設定を確認して見ました.
そうしたら案の定timeoutまでの時間が60秒に設定されていたので,
600秒に変更.

- timeout 60
+ timeout 600

しかし,状況変わらず.
NginxのはいてるエラーなんだからそりゃNginxの設定も見なおさなければいけないかった…

Nginxの設定

nginx連載3回目: nginxの設定、その1 - インフラエンジニアway - powerd by HEARTBEATSを参考に
設定ファイル(/etc/nginx/nginx.conf)のhttpコンテキスト設定に以下を追加しました.

+ keepalive_timeout 600;

状況変わらず.
そういうことではないみたいです.

つぎに,proxyの設定を追加しました.
さくらVPS 上で Thin で動いている Railsアプリ Gogengo! を Nginx + Unicorn で動かすようにしました(JMeter 負荷テスト付き) - bekkou68の日記を参考にさせてもらいました.

+ proxy_connect_timeout 600;
+ proxy_read_timeout    600;
+ proxy_send_timeout    600;

動いた!
その後httpコンテキストの設定の部分をコメントアウトしても動いたので,
proxyの部分の設定をしてなかったのが悪かったようです.
そんな処理をさせるのがそもそもよくないのかもしれませんがしょうがない...