http://example.com
という名前のロード バランサーを備えたサーバーがあり、そのサーバーはhttps://example.net
SSL オフロードを実行し、そのポート 443 へのトラフィックを 8080 にリダイレクトしますhttp://example.com
。
サーバーはexample.com
仮想ネットワーク内で分離されており、インターネットからはアクセスできません。ロード バランサーはインターネットにexample.net
アクセスできexample.com
、インターネットに公開されています。
Apache Tomcat 8 マネージャー Web インターフェイスを からのみアクセス可能にし、http://example.com/manager
からはアクセスできないように設定するにはどうすればよいですかhttps://example.net/manager
?
答え1
どのようなロード バランサーを使用しているかはわかりませんので、具体的な構成を示すことはできませんが、私自身はプロキシとして Nginx を介してパブリックにアクセス可能な Tomcat サーバーを持っています。
エンギンクス
upstream websites {
server 192.168.x.x:8080 fail_timeout=0;
}
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
location / {
proxy_pass http://websites/;
include proxy_params;
}
#SSL configuration here
}
また、管理とセットアップがはるかに簡単なため、Nginx で SSL ターミネーションと圧縮も実行します。また、後でロード バランスを作成したい場合も、Nginx で実行できるため、Tomcat で行う必要はありません。 https://www.digitalocean.com/community/tutorials/how-to-add-the-gzip-module-to-nginx-on-ubuntu-14-04
Tomcat server.xml に、まだ存在しない場合は、サイトの新しい仮想ホストを追加します。
<Host name="www.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>example.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_example_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
マネージャー プロジェクトの manager.xml ファイルでは、マネージャー HTML ページにアクセスできるユーザーを設定できます。パブリック IP アドレスまたはジャンプ ホストのいずれかに設定します。記憶している限り、標準ではローカルホストのみが HTML マネージャーに接続できます。
個人的には、マネージャー プロジェクトが適切に管理されていない場合や必要ない場合は、それに関連するセキュリティの問題を回避するために、自分のインストールからマネージャー プロジェクトを削除しました。
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
tomcat-users.xml でマネージャーのユーザーとパスワードを設定すれば準備完了です。
答え2
WebサーバーでProxpass/Porxyaliasを設定します。これを行うにはHTTP(80)で設定する必要がありますが、ベストプラクティスとしては、アクセス制限付きのhttpsでロードできます。