Ich glaube, ich bin über meinen Kopf und kann nicht herausfinden, wie man debuggen oder wohin von hier gehen? !! Jede Anleitung würde sehr geschätzt werden!Rails/Rack ... Rack :: ReverseProxy verursachende Anfrage Timeout
Problem:
- Development Environment: alles funktioniert
- Produktion: I "Request Timeout" Fehler
Tor erhalten:
Have „www.site .com/blog "zeige Inhalte von" blog.site.com "ohne eine Weiterleitung/Ändern der Brauen er URL
Setup-
- www.site.com ist eine Rails App auf Heroku
- blog.site.com ist Wordpress auf Bluehost
, damit ich nicht Zugriff auf Serverkonfiguration haben
Ansatz
Verwenden rack-reverse-proxy gem als
Gemfile von jplewicke
Implementierung in How can I use a subdirectory instead of a subdomain? beschrieben
gem "rack-reverse-proxy", :require => "rack/reverse_proxy"
config.ru (kurz vor Lauf AnwName :: 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/")
Ergebnisse/Problem
Es funktioniert großartig in der Entwicklung auf meiner Maschine, aber wenn ich es in der Produktion es mal aus. Es kommt nicht nur zu einer Auszeit, sondern hinterher wird die gesamte Anwendung gehängt oder etwas, d. H. Jede Anfrage läuft sogar auf www.site.com (was vor dem Versuch von blog.site.com funktioniert hat). Nach ca. 5-10min funktioniert www.site.com wieder aber blog.site.com läuft ab.
Logs
2013-03-05 05: 54: 19 + 00: 00 app web.1 - - Der Anfang "/ resource" für 66.108.140.26/cpe-66-108 -140-26.nycres.rr.com am 2013-03-05 05:54:19 +0000
2013-03-05 05: 54: 19 + 00: 00 heroku router - - at = info methode = GET pfad =/blog host = www.site.com fwd = "66.108.140.26/cpe-66-108-140-26.nyc.res.rr.com "dyno = web.1 warteschlange = 0 warten = 0 ms verbinden = 1ms service = 7ms status = 301 bytes = 105
2013- 03-05 05: 54: 49 + 00: 00 heroku router - - bei = Fehlercode = H12 desc = "Anfrage Timeout" Methode = GET Pfad =/blog/ host = www.site.com fwd = "66.108 .140.26/cpe-66-108-140-26.nyc.res.rr.com“Dyno web.1 = queue = 0ms 0ms = wait = 2ms Dienst verbinden 30000ms = Status = 503 Bytes = 0
debug
Ich habe versucht, auf das Debuggen in der Produktion drehen ...
config/Umgebungen/production.rb
config.consider_all_requests_local = true
config.log_level = :debug
aber nichts wirklich nur eine allgemeine,
Anwendungsfehler zeigt sich ... Ihre Seite konnte nicht bedient werden ... versuchen Sie es erneut .... Protokollen überprüfen.
Es ist die einzige Sache, die Art Sinn macht, da es in Entwicklung arbeiten
Irgendwelche Vorschläge oder Ideen, was zu tun? Vielen Dank!
'config.assets.debug = true' schaltet nur Rails-Asset-Debugging ein, meintest du Debug-Logging in' production.rb' zu aktivieren? Wenn ja, benutze 'config.log_level =: debug ' –
@stuart danke. Das war ein Tippfehler in der Frage. Ich habe es oben korrigiert. 'config.log_level =: debug 'ist die aktuelle Einstellung. – haley
Wie lange dauert es, bis der Proxy die Seiten für Sie in Entwicklung lädt? Heroku hat einige Informationen zu diesem Fehler ['Request Timeout'] (https://devcenter.heroku.com/articles/request-timeout), der nützlich sein kann. Könnte es nur sein, dass die Proxy-Nutzung dieser Seiten in der Heroku-Umgebung länger dauert? –