Comment faire pointer une URL vers une instance Tomcat?

8

Désolé si cette question n'a aucun sens (aucun expert ici), mais je comprends que tomcat écoute le port 8080 et que les URL sont généralement adressées à 80. Existe-t-il un moyen de dire à DNS que les URL doivent pointer vers 8080? Ou comment dois-je résoudre ce problème?

Jérôme Verstrynge
la source
doublon possible de Diriger DNS vers différents ports
mailq
Je pense que cet article explique comment SRV peut être utilisé pour spécifier un port . Cependant, il semble qu'un port URI soit considéré comme prioritaire par rapport au port attribué par DNS. Si je comprends bien, les navigateurs Web ajoutent automatiquement le port 80 à l'adresse, ce qui pourrait expliquer pourquoi je n'ai pas réussi à faire fonctionner cette approche.
Andy2K11

Réponses:

8

DNS ne sait rien des ports. Si vous voulez que Tomcat écoute sur le port 8080, vous avez deux options. La première consiste à utiliser le numéro de port dans l'URL

http://example.com:8080/

Si vous n'aimez pas regarder cela, vous pouvez utiliser votre serveur Web comme proxy de port. Par exemple, dans Apache, vous pouvez utiliser le mod _ proxy

<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
la source
Et si un autre hôte écoute sur le port 80? J'ai 2 serveurs sur une machine (requis dans ce cas), mais je souhaite masquer le numéro de port dans l'URL même si c'est celui qui écoute le trafic vers ce serveur Web.
Jay Blanchard
@JayBlanchard Je ne comprends pas vraiment votre commentaire et je ne serai pas attiré plus loin que de dire lire la documentation sur les hôtes virtuels basés sur le nom et mod_proxy.
user9517
2

Cela se fait par http://the.site.invaild:8080/.

Il n'est pas possible de donner un port dans le DNS. Le DNS mappe uniquement les noms aux IP. Mais pas de ports.

mailq
la source
2

Je pense qu'il est préférable de faire en sorte que votre matou écoute le port 80. Vous pouvez le faire s'il n'y a pas d'autre serveur écouter le port 80.Pour cela, vous pouvez éditer server.xml

Modifiez comme suit,

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

Vous pouvez maintenant essayer http://example.com/.Cela se résoudra correctement sur votre instance tomcat.Parce que le port par défaut de http est 80.

sunnychayen
la source
Je vous ai essayé par exemple mais ça ne marche pas pour moi
Luffy
2

Il pourrait être possible de résoudre ce problème via DNS: SRV-Records

Avec SRV-Records, vous dites essentiellement à DNS de répondre à une question comme "où est le httpd from example.org"? Et DNS répond avec une adresse IP ET un numéro de port.

Bien que je ne sais pas si les clients demandent ces informations ou si le navigateur effectue simplement une recherche A-Record et demande le site Web à partir de l'adresse IP donnée à l'aide du port 80, cela pourrait valoir la peine d'essayer si vous voulez le faire avec DNS.

Sinon: laissez ether Tomcat écouter le port 80 ou redirigez 8080 vers Tomcat via le mod_proxy d'Apache.

Subito
la source
Les navigateurs courants ne prennent pas encore en charge les recherches d'enregistrements SRV - voir homepage.ntlworld.com/jonathan.deboynepollard/FGA/… et la discussion ici .
le-wabbit