CloudFoundry中的一个简单的Sinatra应用程序似乎存在问题:
get '/ping' do
"OK"
end
get '/ping_redirect' do
redirect '/ping'
end
ping
有效,ping_redirect
没有,并发出错误:
502 Bad Gateway nginx的
知道怎么解决吗?
我需要在Sinatra中重定向的解决方案。
答案 0 :(得分:1)
我能够将以下内容推送到ghoping.cloudfoundry.com:
require 'rubygems'
require 'sinatra'
get '/ping' do
"OK"
end
get '/ping_redirect' do
redirect '/ping'
end
答案 1 :(得分:0)
问题可能是由于混合了错误的反向代理配置和版本的Sintra> = 1.2。
可配置重定向
在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