CloudFoundry 中的一个简单的 Sinatra 应用程序似乎会出现问题:
get '/ping' do
"OK"
end
get '/ping_redirect' do
redirect '/ping'
end
ping
有效,无效ping_redirect
并给出错误:
502 错误网关 nginx
知道如何解决吗?
我需要一个在 Sinatra 中重定向的解决方案。
CloudFoundry 中的一个简单的 Sinatra 应用程序似乎会出现问题:
get '/ping' do
"OK"
end
get '/ping_redirect' do
redirect '/ping'
end
ping
有效,无效ping_redirect
并给出错误:
502 错误网关 nginx
知道如何解决吗?
我需要一个在 Sinatra 中重定向的解决方案。
我能够将以下内容推送到 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
该问题可能是由于混合了错误的反向代理配置和 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