Ich habe einen Server http://example.com
mit einem davor liegenden Load Balancer namens , der https://example.net
SSL-Offloading durchführt und den Verkehr auf Port 443 auf 8080 umleitet http://example.com
.
Der Server example.com
ist in einem virtuellen Netzwerk isoliert und nicht über das Internet erreichbar. Der Load Balancer kann das Internet example.net
erreichen und ist öffentlich zugänglich.example.com
Wie kann ich die Weboberfläche des Apache Tomcat 8-Managers so einrichten, dass sie nur von http://example.com/manager
und nicht von erreichbar ist https://example.net/manager
?
Antwort1
Ich weiß nicht, welchen Load Balancer Sie verwenden, und kann daher keine spezifische Konfiguration dafür angeben. Ich selbst habe einen öffentlich zugänglichen Tomcat-Server über Nginx als Proxy.
Nginx
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
}
Ich überlasse Nginx auch die SSL-Terminierung und -Komprimierung, da dies viel einfacher zu verwalten und einzurichten ist. Und wenn ich später eine Lastverteilung erstellen möchte, kann ich das auch mit Nginx tun, es gibt also keinen Grund, es in Tomcat zu tun. https://www.digitalocean.com/community/tutorials/wie-man-das-gzip-modul-zu-nginx-auf-ubuntu-14-04-hinzufügt
Fügen Sie dann in der Datei Tomcat server.xml einen neuen virtuellen Host für Ihre Site hinzu, falls dieser noch nicht vorhanden ist.
<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>
Dann können Sie in der Datei manager.xml für das Manager-Projekt festlegen, wer auf die HTML-Seite des Managers zugreifen kann. Legen Sie entweder Ihre öffentliche IP-Adresse oder einen Jump-Host fest. Soweit ich mich erinnere, kann standardmäßig nur der lokale Host eine Verbindung zum HTML-Manager herstellen.
Ich persönlich habe das Managerprojekt aus meiner eigenen Installation gelöscht, um die damit verbundenen Sicherheitsprobleme zu vermeiden, falls es nicht richtig verwaltet wird und ich es nicht brauche.
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
Legen Sie in tomcat-users.xml einen Benutzer und ein Passwort für den Manager fest, und schon kann es losgehen.
Antwort2
Konfigurieren Sie Proxpass/Porxyalias im Webserver. Sie sollten die Konfiguration dazu in HTTP(80) vornehmen, aber am besten laden Sie es in https mit eingeschränktem Zugriff.