Web サイトを提供するポート 80 にリストされている Nginx/Apache Web サーバーで実行されている GCE (Google Compute Engine) サーバーがあります。同時に、Docker コンテナーと同じサーバーで複数のマイクロサービスを実行しています。各コンテナーは、適切なローカル IP アドレスで Web サイトを提供し、localhost:PORT にバインドしました。ポートをパブリック IP アドレスにバインドしたくありません。これにより、マイクロサービスが外部に公開されるためです。
問題は、コンテナーによって提供される Web サイトのページを、Web サーバーのポート 80 で実行されている Web サイトに埋め込む必要があることです。埋め込みコードはブラウザーによって実行されるため、python/HTML コードでローカル IP (172.17.0.x) または localhost:PORT を使用することはできません。
では、コンテナー内でローカルに実行されているマイクロサービスのページを、ユーザーにサービスを提供する Web サイトに埋め込むにはどうすればよいでしょうか?
例えば:
私のサーバーのパブリック IP: 104.145.178.114 Web サイトの提供元: 104.145.178.114:80 同じサーバー内で、172.17.0.1 や 172.17.0.2 などのローカル IP で複数のマイクロサービスが実行されています。各コンテナーは、172.17.0.1:8080/ test.htmlのページをサーバーする内部で実行されるサーバーを持ち、他のコンテナーについても同様です。ここで、このページ test.html を、104.145.178.114 の Nginx/Apache Web サーバーによって提供される別の Web ページに、内部/ローカル IP ポートを公開せずに埋め込む必要があります。
この問題に対する提案と代替ソリューションを聞きたい