Wie kann eine URL auf eine Tomcat-Instanz verweisen?

8

Es tut mir leid, wenn diese Frage keinen Sinn ergibt (hier kein Experte), aber ich verstehe, dass Tomcat Port 8080 abhört und dass die URL normalerweise an 80 adressiert ist. Gibt es eine Möglichkeit, DNS mitzuteilen, dass URLs auf 8080 verweisen sollen? Oder wie soll ich dieses Problem lösen?

Jérôme Verstrynge
quelle
Mögliches Duplikat von DNS an verschiedene Ports
leiten
Ich denke, dass dieser Artikel erklärt, wie SRV verwendet werden kann, um einen Port anzugeben . Es scheint jedoch, dass ein URI-Port Vorrang vor dem zugewiesenen DNS-Port hat. Soweit ich weiß, fügen Webbrowser der Adresse automatisch Port 80 hinzu, was möglicherweise erklärt, warum ich diesen Ansatz nicht zum Laufen gebracht habe.
Andy2K11

Antworten:

8

DNS weiß nichts über Ports. Wenn Sie möchten, dass Tomcat Port 8080 abhört, haben Sie mehrere Möglichkeiten. Die erste besteht darin, die Portnummer in der URL zu verwenden

http://example.com:8080/

Wenn Sie das nicht sehen möchten, können Sie Ihren Webserver als Port-Proxy verwenden, z. B. in Apache können Sie mod _ proxy verwenden

<VirtualHost *:80>
        ServerName      example.com
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass / http://example.com:8080/
        ProxyPassReverse / http://example.com:8080/
        ProxyErrorOverride Off
</VirtualHost>
user9517
quelle
Was ist, wenn ein anderer Host Port 80 überwacht? Ich habe 2 Server auf einem Computer (in diesem Fall erforderlich), möchte aber die Portnummer in der URL ausblenden, auch wenn dieser auf den Datenverkehr zu diesem Webserver wartet.
Jay Blanchard
@ JayBlanchard Ich verstehe Ihren Kommentar nicht wirklich und werde nicht weiter gezogen, als zu sagen, dass Sie die Dokumentation zu namenbasierten virtuellen Hosts und mod_proxy lesen.
user9517
2

Dies geschieht durch http://the.site.invaild:8080/.

Es ist nicht möglich, einen Port im DNS anzugeben. Der DNS ordnet Namen nur IPs zu. Aber keine Ports.

mailq
quelle
2

Ich denke, es ist am besten, Ihren Tomcat dazu zu bringen, Port 80 abzuhören. Sie können dies tun, wenn kein anderer Server den Port 80 abhört. Damit Sie server.xml bearbeiten können

Ändern Sie wie folgt:

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

Jetzt können Sie http://example.com/ ausprobieren. Dies wird korrekt in Ihre Tomcat-Instanz aufgelöst. Der Standardport von http ist 80.

sunnychayen
quelle
Ich habe versucht, Sie Beispiel, aber es funktioniert nicht für mich
Ruffy
2

Möglicherweise besteht die Möglichkeit, dies über DNS: SRV-Records zu lösen

Mit SRV-Records weisen Sie DNS grundsätzlich an, eine Frage wie "Wo ist der httpd von example.org" zu beantworten? Und DNS antwortet mit einer IP-Adresse UND einer Portnummer.

Obwohl ich nicht weiß, ob die Clients diese Informationen anfordern oder ob der Browser nur eine A-Record-Suche durchführt und die Website von der angegebenen IP über Port 80 anfordert, ist dies möglicherweise einen Versuch wert, wenn Sie dies mit DNS tun möchten.

Andernfalls: Lassen Sie Ether Tomcat Port 80 abhören oder leiten Sie 8080 über Apaches mod_proxy zu Tomcat um.

Subito
quelle
Gängige Browser unterstützen SRV-Datensatzsuchen noch nicht - siehe homepage.ntlworld.com/jonathan.deboynepollard/FGA/… und die Diskussion hier .
The-Wabbit