2010-08-17 26 views
8

Recientemente recibí proyectos que se ejecutan en Struts y estoy esperando que venga más JSP.¿Cómo ejecuto Apache (httpd) y Tomcat juntos?

Después de buscar en Google la pregunta, me llevaron a los blogs de personas que intentaron hacer lo mismo. Esos blogs no eran exactamente un procedimiento paso a paso de cómo lo hacían, sino más bien una referencia en caso de que necesiten hacer algo similar en el futuro. En algunos casos, el autor no dijo exactamente si él tuvo éxito en su intento de ejecutar los dos servicios antes mencionados juntos.

Lamentablemente, no puedo seguir sus "instrucciones" ya que tengo muchos proyectos PHP configurados (cargar directorios, classpaths etc ...) para ejecutar en mi servidor de prueba y no tengo el lujo del tiempo para reconfigurarlos todos en caso de que me equivoque con el servidor httpd. Y, para ser honestos, no he intentado ni un solo paso ejecutarlos juntos por la misma razón que dudar en actualizar los archivos de configuración.

No estoy seguro si esto se suma a la complejidad, pero estoy ejecutando ambos servicios a través de xampp (con tomcat como un complemento xampp) para fines de portabilidad.

Sé que puedo detener mi servicio Apache cuando estoy trabajando en JSP, pero oye, este es una oportunidad para probar algo nuevo y no puedo dejarlo escapar. Además, sería realmente conveniente que ambos servicios se ejecuten automáticamente al inicio, lo que realmente aumentaría mi productividad ya que no tendré que cambiar manualmente entre los servicios cuando sea necesario.

Espero que haya alguien en SO que haya viajado en el mismo barco.

edición: Tomcat versión 6.0.20 es Httpd versión es 2.2.14

+0

Es una cosa muy común de hacer esto, estoy un poco sorprendido de que haya tenido dificultades para encontrar las instrucciones. Ojalá recordara las instrucciones que seguí cuando lo hice yo mismo. –

+0

ah sí, creo que hay muchas discusiones pero las políticas de Internet de la compañía bloquean los tableros de mensajes. gracias a Dios que SO no se considera un foro público jeje – lock

Respuesta

7
  • Tienes Tomcat escuche en un puerto distinto de 80
  • Siga una guía para configurar mod_proxy a redirigir las solicitudes de una determinada ubicación a Tomcat, como this one.

Si realmente solo está probando, omita el segundo paso y acceda al servidor a través de un puerto diferente para Tomcat.

Editar: Ver también http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html sobre la configuración de mod_proxy_ajp.

+0

Sugerir etiquetado 'PASO 1' y 'PASO 2 (opcional) '. Y explicando que en una alternativa, el sitio parece unificado (pasos 1 y 2). Y el otro fragmentado (paso 1), con diferentes números de puerto en la barra de direcciones del navegador. (Suponiendo que todo esto es correcto, por supuesto, es como mi cuarta suposición hasta ahora.) –

1

Olvidó mencionar qué versión de Tomcat está utilizando y tampoco mencionó si realmente miró la documentación de Tomcat para responder la pregunta.

Sugiero comenzar aquí: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html y buscar en la configuración de mod_jk.

+0

Tenga en cuenta que el método mod_jk (2?) Se considera ampliamente obsoleto en las versiones modernas de Apache que vienen con mod_proxy_ajp. – Borealid

+0

su Apache 2.2.14 para httpd y Tomcat 6.0.20 :) también modificó la pregunta en caso de que – lock

+1

mod_jk2 haya sido eliminado hace años. el enlace de documentación que proporcioné fue la documentación más actualizada en el sitio web de tomcat ... que es mod_jk1.2.30 (publicado en febrero de este año) ... apenas desaprobado y funciona con todas las versiones de Apache . – user334583

0

Si desea utilizar apache/ httpd para servir a la petición de PHP, así como cualquier otro servidor que se ejecuta en un puerto diferente Digamos que Tomcat en el puerto 8080 se puede utilizar apache/httpd para actuar como un "proxy" y asignar una URL que será servida por otro servidor. Esto se hace usando la configuración ProxyPassProxyPassReverse.

Por ejemplo: Si desea http://localhost/php para ser servido por PHP y http://localhost/tomcat a ser servida por Tomcat entonces usted tendrá que hacer cambios siguientes en httpd.config/apache.config [apache2.config dependiendo de la versión de Apache están utilizando]:

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
# Uncomment these to proxy FTP or HTTPS 
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
#LoadModule proxy_connect_module modules/mod_proxy_connect.so 

<VirtualHost *:80> 
# Your domain name 
# ServerName Domain_NAME_HERE 

ProxyPreserveHost On 

ProxyPass /tomcat http://localhost:8080/ 
ProxyPassReverse /tomcat http://localhost:8080/ 

# The location of the HTML files, and access control information 
DocumentRoot /var/www 
<Directory /var/www> 
    Options -Indexes 
    Order allow,deny 
    Allow from all 
</Directory> 

</VirtualHost> 

en caso de que se están ejecutando en httpdcentos y usted puede conseguir de error Apache Mod_proxy '[Error] (13)Permission Denied', a continuación, siga this enlace que dice ejecute el siguiente comando:

/usr/sbin/setsebool -P httpd_can_network_connect 1 

Le recomiendo que lea mod_proxy.

Ref: Redhat mod_proxy configuration

Cuestiones relacionadas