CloudFoundry并在Sinatra重定向

时间:2012-08-10 21:06:15

标签: sinatra ping cloudfoundry

CloudFoundry中的一个简单的Sinatra应用程序似乎存在问题:

get '/ping' do
  "OK"
end

get '/ping_redirect' do
  redirect '/ping'
end

ping有效,ping_redirect没有,并发出错误:

  

502 Bad Gateway   nginx的

知道怎么解决吗?

如果您想对其进行测试,请参阅herehere

我需要在Sinatra中重定向的解决方案。

2 个答案:

答案 0 :(得分:1)

我能够将以下内容推送到ghoping.cloudfoundry.com:

require 'rubygems'
require 'sinatra'

get '/ping' do
    "OK"
end

get '/ping_redirect' do
    redirect '/ping'
end

重定向对我来说很好:http://ghoping.cloudfoundry.com/ping_redirect

答案 1 :(得分:0)

问题可能是由于混合了错误的反向代理配置和版本的Sintra> = 1.2。

来自1.2 release notes

  

可配置重定向

     

在1.1中,我们确保所有重定向都是绝对URI,以符合RFC 2616(HTTP 1.1)。如果您的反向代理配置损坏,这将导致您的问题。如果是这样,您应该真正修复您的配置。如果你不能这样做,一个简单的禁用:absolute_redirects现在会回复1.0的行为。

我将这些知识应用到您的示例中以获取以下工作代码(除了我喜欢带有我的ping的pongs):

require 'rubygems'
require 'sinatra'

disable :absolute_redirects

get '/pong' do
    "pong!"
end

get '/ping' do
    redirect '/pong'
end