質問:私はそれぞれJAVAとPYTHONを使用して作成された2つのWebアプリケーションを持っています。
JAVAアプリケーションは、Tomcatサーバーを使用してポート番号8000で実行されます。 PYTHONアプリケーションはweb.pyを使用し、ポート番号8080で実行されます。 Python(API)はバックエンド操作を実行し、Java(UI)はフロントエンドとして機能します。
私のローカルUbuntuコンピュータでは、これらのアプリケーションは正しく実行されます。ただし、ポート80と443のみが開いていて、残りのポートはすべて制限されているQAコンピュータでこのアプリケーションを実行する必要があります。 authbindを使用してポート80でJavaを実行しようとしましたが、失敗しました。
HTTPリクエストを内部的にそのWebサービスとポート番号にリダイレクトするためにURLフィルタリングを使用する他の方法はありますか?他の方法がある場合は、関連情報を共有してください。
よろしくお願いします。
答え1
これに対する標準的な解決策は、通常、ホスト名に基づいて適切な「実際の」サーバーに要求を転送するフロントエンドサーバーを使用することです。これは…リバースプロキシ。nginxこの目的のためによく使用されます。 ~から地図時間。
/etc/nginx/nginx.conf
2つのバックエンド()を持つリバースプロキシの構成は次のとおりです。
server {
server_name java-app.example.com;
proxy_pass http://localhost:8000/;
}
server {
server_name python-app.example.com;
proxy_pass http://localhost:8080/;
}
もちろん便利な追加オプション。
答え2
TCP:80への要求がHTTP要求のFQDNに基づいて別の物理ポートにリダイレクトされるように、nginxをリバースプロキシとしてインストールして設定できます。
見るここnginx設定の例。