gpt4 book ai didi

ruby-on-rails - Rails/Rack... Rack::ReverseProxy 导致请求超时

转载 作者:行者123 更新时间:2023-12-03 17:53:24 26 4
gpt4 key购买 nike

我想我在我的头上,无法弄清楚如何调试或从这里去哪里?!任何指导将不胜感激!

问题:

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

  • 目标:

    让“www.site.com/blog”显示来自“blog.site.com”的内容而无需重定向/更改浏览器 URL

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

  • 所以我无权访问服务器配置

    联系方式

    使用 rack-reverse-proxy gem 如 How can I use a subdirectory instead of a subdomain? 中所述来自 jplewicke

    实现

    文件
    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

    配置/路由.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 - - Started GET "/resource" for 66.108.140.26/cpe-66-108-140-26.nyc.res.rr.com at 2013-03-05 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="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 queue=0ms wait=0ms connect=2ms service=30000ms status=503 bytes=0



    调试

    我尝试在生产中打开调试...

    配置/环境/production.rb
    config.consider_all_requests_local = true
    config.log_level = :debug

    但没有什么真正显示出来只是一个通用的,

    Application Error... your page could not be served... try again.... check logs.



    这是唯一有意义的事情,因为它正在开发中

    关于该怎么做的任何建议或想法?谢谢!

    最佳答案

    我只是在 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

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

    有一个不错的!

    关于ruby-on-rails - Rails/Rack... Rack::ReverseProxy 导致请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216988/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com