1

CloudFoundry 中的一个简单的 Sinatra 应用程序似乎会出现问题:

get '/ping' do
  "OK"
end

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

ping有效,无效ping_redirect并给出错误:

502 错误网关 nginx

知道如何解决吗?

如果您想对其进行测试,请参见此处此处

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

4

2 回答 2

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

于 2012-08-10T23:57:15.860 回答
0

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

1.2 发行说明

可配置的重定向

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

我将这些知识应用于您的示例以获得以下工作代码(除了我喜欢乒乓球和我的 ping):

require 'rubygems'
require 'sinatra'

disable :absolute_redirects

get '/pong' do
    "pong!"
end

get '/ping' do
    redirect '/pong'
end
于 2013-08-08T00:02:36.330 回答