我想我已经过头了,无法弄清楚如何调试或从哪里开始?!!任何指导将不胜感激!
问题:
目标:
让“www.site.com/blog”显示“blog.site.com”中的内容,而不会重定向/更改浏览器网址
设置
所以我无法访问服务器配置
方法
按rack-reverse-proxy 3> How can I use a subdirectory instead of a subdomain?中所述使用jplewicke gem
实施
的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
配置/ 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 app web.1 - - 开始获取“/资源” 适用于2013-03-05 66.108.140.26/cpe-66-108-140-26.nyc.res.rr.com 05:54:19 +0000
2013-03-05 05:54:19 + 00:00 heroku router - - 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 queue = 0 wait = 0ms connect = 1ms service = 7ms status = 301 bytes = 105
2013-03-05 05:54:49 + 00:00 heroku router - - at = error code = H12 desc =“请求超时”方法= GET路径= / blog / 主机= www.site.com fwd =“66.108.140.26/cpe-66-108-140-26.nyc.res.rr.com”dyno = web.1 queue = 0ms wait = 0ms connect = 2ms service = 30000ms status = 503 bytes = 0
调试
我尝试在生产中启用调试......
配置/环境/ production.rb
config.consider_all_requests_local = true
config.log_level = :debug
但没有任何真正只显示通用的
应用程序错误...无法提供您的页面...再试一次....检查日志。
这是唯一有意义的,因为它在开发中工作
有关该怎么做的任何建议或想法?谢谢!
答案 0 :(得分:0)
我只是在rails 4上设置它。它使用的是所有子目录:
use Rack::ReverseProxy do
reverse_proxy_options preserve_host: true
reverse_proxy '/blog', 'http://grav.somedomain.net/'
end
但在访问没有子目录的博客时它正在响应永久重定向(301)。
要解决这个问题,只需重写/博客到/ blog / home,并确保在您的博客中添加此别名链接!
require 'rack/rewrite'
use Rack::Rewrite do
rewrite '/blog', '/blog/home'
end
也许有人可以告诉我们这个假设是否属实:博客引擎经常在家中重定向可能会破坏代理。
有个好人!