Come faccio a eseguire correttamente Tomcat a fianco di Apache?

Ho installato Apache Tomcat e Apache Webserver su un sistema Ubuntu 10.04 Server. Fondamentalmente ho seguito questi passaggi per configurare il connettore mod-jk e il mio server web ora sembra redirect tutto il traffico a Tomcat.

Questo significa che indipendentemente dal tempo in cui utilizzo la port 80 o 8080 sono servito il contenuto della directory ROOT di Tomcat. Va bene, ma vorrei ancora essere in grado di utilizzare Apache per servire contenuti statici e PHP (come PHPMyAdmin).

  • Scansione automatica di installazioni AWS EC2 basate sull'utilizzo della memory
  • Apache2 su Ubuntu: non ho installato apachectl
  • Ubuntu - Nessun utente nel gruppo 'Root' e l'utente corrente non nel file sudoers
  • Perché non posso get Apache2 mod_dumpio a lavorare sotto Lucid Lynx Ubuntu?
  • Il php.ini locale non sostituisce il php.ini principale
  • Passwordless SSH non funziona - le chiavi sono copiate e le autorizzazioni sono impostate
  • Nginx Ubuntu Postfix Config - Imansible connettersi al server server IMAP in arrivo che non risponde 'ma può submit la posta in output utilizzando gli stessi dettagli?
  • rsync xattr oddness tra mac & linux?
  • 2 Solutions collect form web for “Come faccio a eseguire correttamente Tomcat a fianco di Apache?”

    Se state andando con mod_jk, che è un'opzione popolare, la risposta di Oscar è corretta. È necessario limitare ciò che viene elaborato da Tomcat modificando qualcosa di simile:

    JkMount /* ajp13_worker 

    … ai soli routes che vorresti lavorare da Tomcat, ad esempio:

     JkMount /*.jsp ajp13_worker JkMount /*.cfc ajp13_worker JkMount /*.cfm ajp13_worker 

    Se stai cercando altre opzioni, mod_proxy_http o mod_proxy_ajp potrebbero anche essere utilizzati. Continuerò un paio di esempi rapidi per proxying * .jsp / *. Cfm / *. Cfc richieste a Tomcat …

    Se si desidera provare entrambe le opzioni, iniziare triggersndo entrambi i moduli (e tutte le dependencies), che è molto semplice con Ubuntu 10.04 😉

     sudo a2enmod proxy_http proxy_ajp sudo /etc/init.d/apache2 restart 

    Mi piace aggiungere la mia configuration proxy in /etc/apache2/conf/httpd.conf su Ubuntu, ma puoi anche metterlo in uno o più configurazioni VirtualHost.

    Per consentire a qualsiasi proxy, supponendo di eseguire Apache e Tomcat sullo stesso server, vuoi aggiungere una direttiva come questa:

     <Proxy *> Allow from 127.0.0.1 </Proxy> 

    Ecco una configuration usando mod_proxy_ajp:

     ProxyPreserveHost On ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:8009/$1$2 ProxyPassMatch ^/(.+\.jsp)$ ajp://localhost:8009/$1 

    Ovviamente, le espressioni regolari possono essere modificate in base alle vostre esigenze (le due direttive di ProxyPassMatch di cui sopra possono anche essere combinate in un unico regex abbastanza facilmente).

    Per eseguire lo stesso con mod_proxy_http, è sufficiente modificare il protocollo e la port:

     ProxyPreserveHost On ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://localhost:8080/$1$2 ProxyPassMatch ^/(.+\.jsp)$ http://localhost:8080/$1 

    Se desideri proiettare host specifici e forse mascherare un path di context, puoi preferire qualcosa di simile in uno specifico VirtualHost:

     ProxyPreserveHost Off ProxyPass / http://example.site.com:8080/context/ ProxyPassReverse / http://example.site.com:8080/context/ 

    Infine, se avete bisogno di avere una fantasia (ad esempio, qualcosa di strano come l'ispezione di una string di query o qualsiasi altra cosa che si possa immaginare con RewriteCond / RewriteRule), potresti persino utilizzare il mod_rewrite con il flag di proxy (P) a proxy a Tomcat. Devi abilitare un altro module, mod_rewrite:

     sudo a2enmod rewrite sudo /etc/init.d/apache2 restart 

    Quindi, all'interno di un VirtualHost, è ansible proxy richieste CFML con:

     RewriteEngine On RewriteRule ^/(.*\.cf[cm]l?)(/.*)?$ ajp://localhost:8009/$1$2 [P] 

    Come potete vedere, puoi diventare piuttosto creativo: P Spero che aiuta!

    Utilizza JkUnmount per le cose che non vuoi essere servito da tomcat:

    JkMount / * tuo dipendente
    JkUnMount /*.php yourworker
    JkUnMount /*.png yourworker
    JkUnMount /*.jpg tuo lavoratore
    eccetera…

    (Non sei sicuro se puoi: JkUnMount /*.{php|jpg|gif|png|etc ..})

    O se utilizzi solo jsp per tomcat prova:

    jkMount /*.jsp lavoratore

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.