複数の製品を扱うJavaアプリケーションがあります。それは製品に基づいて行動の変化です。AWS ELBのアプリケーションサーバーにサブドメインを渡す
製品は、URLのサブドメインで定義されます。これらのURLは、それぞれが均質EC2アプリケーションの私達の艦隊に要求を転送ルート53を介して個別のAWS弾性ロードバランサにマップされている
https://<product1>.example.com
https://<product2>.example.com
...
サーバー。
したがって、https://<product1>.example.com
にはELBがあり、https://<product2>.example.com
は異なるELBを持っています。これらのELBSは両方とも、同じJavaアプリケーションを使用して同じサーバーセットにトラフィックを送ります。
ELBのフォワードリクエストは、ポート9443と9001を介してhttpsであるかどうかに基づいており、nginxはポート9001のすべてのトラフィックに対してリダイレクトを行います。そうでなければポート8080経由でJavaアプリケーションに転送されます。
元のURLがJavaアプリに届く前のURLを特定できる必要があるため、レスポンスの設定と動作を判断するために使用できます。私が思いついたベストは$http_referer
ですが、最初の訪問後にはどのリクエストに対しても機能します。最初の訪問時にもURLが必要です。
以下は、私たちの展開の(非常に)概略図です。私はそれが役に立ちそうです。
['$ host'](http://nginx.org/en/docs/http/ngx_http_core_module.html#var_host)...それはあなたが探しているものですか?また、ワイルドカードやUCC(Multiple-SAN)SSL証明書のように見えますが、余分なELBをすべて不要にする可能性があります。 –