我想我已经不知所措了,我想不出怎么调试或者从这里去哪里?!!任何指导都将不胜感激!
问题:
目标:
让"www.site.com/blog“显示"blog.site.com”中的内容,而不需要重定向/更改浏览器URL
设置
所以我无法访问服务器配置
逼近
使用机架-反向代理 gem,如如何使用子目录而不是子域?中杰普列维奇所描述的那样
Implementation
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})
endconfig/scripes.rb
match "/blog" => redirect("/blog/")Results/Problem
它在我的机器上很好的发展,但当我把它投入生产时,它就过时了。它不仅超时,而且之后整个应用程序被挂起或什么的,即每个请求超时甚至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-03-05 05:54:19+00:00 heroku路由器-- at=info method=GET path=/blog host=www.site.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路由器-- at=error code=H12 desc=“请求超时”method=GET path=/blog/ host=www.site.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但没什么能证明是普通的,
应用错误..。你的页面无法送达..。再试一次。检查日志。
这是唯一有意义的事情,因为它是在发展中工作
对于该做什么有什么建议或想法吗?谢谢!
发布于 2016-02-27 15:21:16
我只是在rails 4上设置了它。它在所有子目录上工作,使用:
use Rack::ReverseProxy do
reverse_proxy_options preserve_host: true
reverse_proxy '/blog', 'http://grav.somedomain.net/'
end但是当访问没有子目录的/blog时,它响应了一个永久重定向(301)。
要解决这个问题,只需将/blog重写到/ blog /home,并确保在博客中添加这个别名链接!
require 'rack/rewrite'
use Rack::Rewrite do
rewrite '/blog', '/blog/home'
end也许有人可以告诉我们这个假设是否正确:博客引擎经常会在家里重定向,这可能破坏了代理。
祝你过得愉快!
https://stackoverflow.com/questions/15216988
复制相似问题