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 では、RFC 2616 (HTTP 1.1) に準拠するために、すべてのリダイレクトが絶対 URI であることを確認しました。これにより、リバース プロキシ構成が壊れている場合に問題が発生します。その場合は、構成を本当に修正する必要があります。それができない場合は、単純に :absolute_redirects を無効にすると、1.0 の動作が返されます。
この知識をあなたの例に適用して、次の作業コードを取得しました(pingでポンが好きなことを除いて):
require 'rubygems'
require 'sinatra'
disable :absolute_redirects
get '/pong' do
"pong!"
end
get '/ping' do
redirect '/pong'
end