首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails/Rack..。Rack::ReverseProxy导致请求超时

Rails/Rack..。Rack::ReverseProxy导致请求超时
EN

Stack Overflow用户
提问于 2013-03-05 06:10:30
回答 1查看 1.5K关注 0票数 5

我想我已经不知所措了,我想不出怎么调试或者从这里去哪里?!!任何指导都将不胜感激!

问题:

  • 开发环境:一切正常
  • 生产:我得到了“请求超时”错误

目标:

让"www.site.com/blog“显示"blog.site.com”中的内容,而不需要重定向/更改浏览器URL

设置

  • www.site.com是Heroku上的Rails应用程序
  • blog.site.com在Bluehost上是WordPress

所以我无法访问服务器配置

逼近

使用机架-反向代理 gem,如如何使用子目录而不是子域?杰普列维奇所描述的那样

Implementation

Gemfile

代码语言:javascript
复制
gem "rack-reverse-proxy", :require => "rack/reverse_proxy"

config.ru (在运行AppName::Application之前)

代码语言:javascript
复制
use Rack::ReverseProxy do
  reverse_proxy(/^\/blog(\/.*)$/,'http://blog.site.com$1',
  opts = {:preserve_host => true})
end

config/scripes.rb

代码语言:javascript
复制
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

代码语言:javascript
复制
config.consider_all_requests_local = true
config.log_level = :debug

但没什么能证明是普通的,

应用错误..。你的页面无法送达..。再试一次。检查日志。

这是唯一有意义的事情,因为它是在发展中工作

对于该做什么有什么建议或想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-02-27 15:21:16

我只是在rails 4上设置了它。它在所有子目录上工作,使用:

代码语言:javascript
复制
use Rack::ReverseProxy do
  reverse_proxy_options preserve_host: true
  reverse_proxy '/blog', 'http://grav.somedomain.net/'
end

但是当访问没有子目录的/blog时,它响应了一个永久重定向(301)。

要解决这个问题,只需将/blog重写到/ blog /home,并确保在博客中添加这个别名链接!

代码语言:javascript
复制
require 'rack/rewrite'
use Rack::Rewrite do
  rewrite   '/blog',  '/blog/home'
end

也许有人可以告诉我们这个假设是否正确:博客引擎经常会在家里重定向,这可能破坏了代理。

祝你过得愉快!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15216988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档