Come fare in modo che un URL punti a un'istanza Tomcat?


8

Scusate se questa domanda non ha senso (nessun esperto qui), ma capisco che Tomcat ascolta la porta 8080 e che gli URL sono generalmente indirizzati a 80. C'è un modo per dire al DNS che gli URL dovrebbero puntare a 8080? O come devo risolvere questo problema?


possibile duplicato di DNS diretto a porte diverse
mailq

Penso che questo articolo spieghi come SRV può essere usato per specificare una porta . Tuttavia, sembra che una porta URI sia considerata prioritaria rispetto alla porta assegnata al DNS. A quanto ho capito, i browser Web aggiungono automaticamente la porta 80 all'indirizzo, il che potrebbe spiegare perché non sono riuscito a far funzionare questo approccio.
Andy2K11,

Risposte:


8

Il DNS non sa nulla delle porte. Se vuoi che Tomcat ascolti sulla porta 8080, hai un paio di opzioni. Il primo consiste nell'utilizzare il numero di porta nell'URL

http://example.com:8080/

Se non ti piace guardarlo, allora puoi usare il tuo webserver come proxy port ad es. In Apache puoi usare 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>

E se hai un altro host in ascolto sulla porta 80? Ho 2 server su una macchina (richiesto in questo caso) ma voglio nascondere il numero di porta nell'URL anche se è quello in ascolto del traffico verso quel server web.
Jay Blanchard,

@JayBlanchard Non capisco davvero il tuo commento e non sarò disegnato oltre a dire leggere la documentazione sugli host virtuali basati sul nome e mod_proxy.
user9517

2

Questo è fatto da http://the.site.invaild:8080/.

Non è possibile fornire una porta nel DNS. Il DNS associa solo i nomi agli IP. Ma nessuna porta.


2

Penso che sia meglio fare in modo che Tomcat ascolti la porta 80.Puoi farlo se non ci sono altri server che ascoltano la porta 80.Perché puoi modificare server.xml

Cambia come segue,

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

Ora puoi provare http://example.com/.Questo risolverà correttamente l'istanza di Tomcat.Perché la porta predefinita di http è 80.


Ho provato il tuo esempio ma non funziona per me
Luffy,

2

Potrebbe esserci la possibilità di risolverlo tramite DNS: SRV-Records

Con SRV-Records in pratica dici a DNS di rispondere a una domanda del tipo "dov'è httpd da esempio.org"? E DNS risponde con un indirizzo IP e un numero di porta.

Anche se non so se i client richiedono queste informazioni o se il browser esegue solo una ricerca A-Record e richiede il sito Web dall'IP specificato utilizzando la porta 80, potrebbe valere la pena provare se si desidera farlo con DNS.

Altrimenti: lascia che l'etere Tomcat ascolti la porta 80 o reindirizzi 8080 a Tomcat tramite il mod_proxy di Apache.


I browser comuni non supportano ancora le ricerche dei record SRV: vedere homepage.ntlworld.com/jonathan.deboynepollard/FGA/… e la discussione qui .
the-wabbit,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.