2017-01-27 14 views
2
私はElastic Beanstalkでアプリケーションとして展開されているフロントいくつかのプロトタイプのWebアプリケーションへのリバースHTTPプロキシとしてAWS APIゲートウェイを使用しようとしています

:各EBアプリがある AWS APIゲートウェイが正しくプロキシリバースない

設定API Gatewayのアプリ名の下にマッピングされます。

/hello1 (API Gateway mapping) --> prototype1 EB application 
/hello2 (API Gateway mapping) --> prototype2 EB application 
... etc 

これは私が作成した全体的なマッピングです:

enter image description here

API Gatewayは、例えば、各マッピングにルートリソースに対する要求を扱うようです「/」は異なるサブリソースに対する要求に、私は、両方のプロキシのマッピングを設定している:

ルート(「/」)リソースは単純です(すなわち、非欲張り)プロキシマッピング:

Root '/' resource proxy mapping私は、「マスター」

という名前のステージにAPIを展開

Greedy proxy mapping under the root context

はその後、ルートコンテキストの下に何のための貪欲プロキシマッピングがあります

各プロトタイプにアクセスするというアイデアは、URL http://protos.acme.com/<stage>/<proto_name>を取得します。 http://protos.acme.com/master/hello1

問題

私は見つけることだと私は、URLの末尾にスラッシュを追加したり、例えば特定のリソースを指定した場合index.htmlすべてが完全に機能します。

の作品http://protos.acme.com/master/hello1 APIゲートウェイによって行われたURLの書き換えが機能しなくなり、プロキシコンテンツのURLがプロトタイプ名を省略すると正しく解決されなくなります。 http://protos.acme.com/master/index.html

末尾のスラッシュを省略した場合の動作を設定する方法が見つかりません。ユーザーに後続のスラッシュを常に覚えさせてもらえないと思っています。

洞察力に感謝!

エド

+0

あなたが「非貪欲」のいずれかの方法を使用している統合エンドポイントを共有することはできますか?あなたが設定したものは、その方法が正しいと仮定して動作するはずです。 –

+0

私は上記の設定が私にとって有効であることをテストし、確認しました。貪欲方法と非貪欲方法の両方のエンドポイントURLをどのように設定したかをご記入ください。 –

答えて

2

Iセットアップ、簡単なテストと、私が明示的にANY{proxy+}パスに加えて、リソースのルートパスでGETメソッドを定義した場合に動作するようです。

api gateway proxy integration

+0

ねえデイブ、私はあなたの例に合うように再設定しようとしましたが、私はあなたが2つのGETメソッドをどのように設定したのか分かりません。私はあなたがHTTPインテグレーションとしてそれらを設定していると推測しましたが、プロキシ設定などを設定しました(そして、もしそうなら、どちらの場合もどのURLを設定しましたか?)。ありがとう! –

+0

'GET'メソッドでは、HTTPプロキシインテグレーションとURL http:// example.tld /を使用しました。 'ANY'' {proxy +}'のパスでは、HTTPプロキシインテグレーションとURL 'http://example.tld/ {proxy}'を使用しました。 –

関連する問題