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 では、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
于 2013-08-08T00:02:36.330 に答える