私は頭がいっぱいで、デバッグ方法やここからどこへ行くべきかわかりません?!! どんなガイダンスも大歓迎です!
問題:
- 開発環境: すべてが機能します
- プロダクション: 「リクエストのタイムアウト」エラーが発生します
ゴール:
「www.site.com/blog」に「blog.site.com」のコンテンツをリダイレクト/変更ブラウザ URL なしで表示させる
設定
- www.site.com は Heroku の Rails アプリです
- blog.site.com は Bluehost の WordPress です
そのため、サーバー構成にアクセスできません
アプローチ
サブドメインの代わりにサブディレクトリを使用するにはどうすればよいですか? で説明されているように、 rack-reverse-proxy gemを使用します。によってjplewicke
実装
Gemfile
gem "rack-reverse-proxy", :require => "rack/reverse_proxy"
config.ru ( AppName ::Applicationを実行する直前)
use Rack::ReverseProxy do
reverse_proxy(/^\/blog(\/.*)$/,'http://blog.site.com$1',
opts = {:preserve_host => true})
end
config/routes.rb
match "/blog" => redirect("/blog/")
結果/問題
私のマシンでの開発ではうまく機能しますが、本番環境に置くとタイムアウトします。タイムアウトするだけでなく、その後アプリケーション全体がハングアップするか、何かが発生します。つまり、www.site.com (blog.site.com を試す前は機能していました) でさえ、すべての要求がタイムアウトします。約 5 ~ 10 分後、www.site.com は再び機能しますが、blog.site.com はタイムアウトします。
ログ
2013-03-05 05:54:19+00:00 アプリ web.1 - - 2013 年に 66.108.140.26/cpe-66-108-140-26.nyc.res.rr.com の GET "/resource" を開始しました-03-05 05:54:19 +0000
2013-03-05 05:54:19+00:00 heroku ルーター - - at=info method=GET path=/blog host=www.site.com fwd="66.108.140.26/cpe-66-108-140- 26.nyc.res.rr.com" dyno=web.1 キュー=0 待機=0ms 接続=1ms サービス=7ms ステータス=301 バイト=105
2013-03-05 05:54:49+00:00 heroku router - - at=error code=H12 desc="Request timeout" method=GET path=/blog/ host=www.site.com fwd="66.108. 140.26/cpe-66-108-140-26.nyc.res.rr.com" dyno=web.1 キュー=0ms 待機=0ms 接続=2ms サービス=30000ms ステータス=503 バイト=0
デバッグ
本番環境でデバッグをオンにしてみました...
config/environments/production.rb
config.consider_all_requests_local = true
config.log_level = :debug
しかし、実際にはジェネリックだけでは何も表示されません。
アプリケーション エラー... ページを表示できませんでした... 再試行してください... ログを確認してください。
開発に取り組んでいるので、それが理にかなっている唯一のことです
何をすべきかについての提案やアイデアはありますか?ありがとう!