2013-05-01 43 views
9

Ho una webapp sul mio server Tomcat come questo:Tomcat Webapp sulla porta 80

mydomain.com:8080/mywebapp

Poi mi collego al mio webapp, e sta funzionando in modo corretto, ma quello che voglio è quello di vedere la mia webapp in questo modo:

mydomain.com

Quindi non voglio solo Tomcat sulla porta 80, io non voglio accedere al mio webapp attraverso il suo nome, voglio collegare direttamente usando il mio dominio URI.

Come posso fare questo? Voglio che funzioni con Linux (Ubuntu 12.04 LTS) e server Windows.

risposta

9

Ci sono diversi modi per raggiungere questo obiettivo, ma il modo più comune per risolverlo è quello di eseguire Apache come proxy inverso di fronte ad esso. Potete trovare alcuni dettagli here. Funzionerà su Linux e Windows. Per Linux, è anche possibile utilizzare authbind per consentire a Tomcat di collegarsi alla porta 80. La conversione della porta su server.xml non funzionerà in Linux, poiché richiederebbe l'avvio di Tomcat come root, che non è un ottimo idea.

Inoltre, per avere la tua webapp allo /, puoi distribuire il tuo file di guerra come ROOT.war.

+1

Ottimo, penso che userò authbind, usando questi passaggi: http://java.dzone.com/articles/running-tomcat-port-80-user – eLRuLL

1

È necessario impostare il server Web Apache e configurarlo per l'utilizzo di tomcat.

È necessario utilizzare mod_jk per configurare il server Web Apache per comunicare con tomcat.

Utilizzare questo link per impostare mod_jk.

6

L'esecuzione di qualsiasi applicazione su una porta privilegiata (quelle inferiori a 1024) richiede privilegi speciali. Se lo fai, assicurati che la tua istanza sia properly hardened.

Per configurare il gatto della porta in ascolto su è necessario modificare il connettore HTTP in conf/server.xml (server reference documentation):

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

Per modificare il percorso del contesto di un app, è possibile rinominare il file di guerra . Per distribuirlo nella radice, rinomina il tuo file di guerra su ROOT.war. Oppure si può aggiungere un META-INF/context.xml in cui è possibile specificare il percorso del contesto desiderato (context reference docs):

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/" /> 
+0

Ho già provato la porta di modifica su 80 cose, ma non funziona su Linux, forse ha bisogno di alcuni passaggi aggiuntivi, ma non voglio rischi per la sicurezza. – eLRuLL

+0

Probabilmente è perché tomcat non è in esecuzione come root; i processi non-root non sono autorizzati a collegarsi a porte privilegiate. Un altro ottimo modo per affrontarlo consiste nell'implementare mod_jk o impostare un proxy inverso usando apache. – ilikeorangutans

Problemi correlati