2012-02-23 13 views
27

Si recibo un archivo war que contiene una aplicación web Java y deseo ejecutar esa guerra localmente, ¿necesito Tomcat o necesito Tomcat y Apache httpd (o cualquier otro servidor web)? ¡Gracias por adelantado!¿Tomcat requiere Apache httpd?

Respuesta

39

Tomcat es un servidor web propio, por lo que no se requiere un servidor web independiente como Apache. Es probable que desee cambiar el puerto de Tomcat embargo, ya que el valor predeterminado es 8080 y los sitios web son por lo general en el puerto 80.

Creo que la gente en general, ponen Apache frente a Tomcat para que puedan hacer cosas como:

  • Tiene un sitio web que tiene varias instancias de Tomcat detrás.
  • Sirve archivos estáticos de Apache para quitar carga de Tomcat.
  • Use otras características de Apache que pueda necesitar (módulos).
  • Como @TacticalCoder menciona en los comentarios, debe ser root para escuchar en el puerto 80, por lo que algunas personas pueden estar usando Apache como una manera fácil de puerto del servidor proxy 80 al puerto 8080.

que había recomiende el enfoque YAGNI y simplemente vaya con Tomcat hasta/a menos que encuentre una razón por la que quiere Apache enfrente de él.

+0

Ahhh - entonces ¿Tomcat * es * el servidor web, y supongo que "Catalina" es el procesador/contenedor de servlet? – IAmYourFaja

+0

@AdamTannon - Sí, [Catalina] (http://en.wikipedia.org/wiki/Apache_Tomcat#Catalina) es el contenedor de servlet. –

+6

@Bredan Long: * "Probablemente también quieras cambiar el puerto de Tomcat" * [sic] ... Con la advertencia de que, en Un * x OS por ejemplo, no puedes escuchar en el puerto 80/443 sin ser * root * . Pero instalar Java/Tomcat como * root * no es necesariamente una buena práctica: en Linux puede instalar Java sin ser * root *. También puede instalar Tomcat sin ser * root *. Luego, como root, puede redirigir de forma transparente el puerto 80/443 a 8080/4443 (por ejemplo) usando el firewall (* por ejemplo, * iptables). Esto generalmente se considera "más seguro" que ejecutar Tomcat como * root * y escuchar directamente en el puerto 80/443. – TacticalCoder

5

Just Tomcat. HTTPD nunca es un requisito para Tomcat.

+0

si HTTPD no es necesario para Tomcat, ¿qué proceso en tomcat se ocupará de las solicitudes entrantes del servidor? ¿Podría explicar por favor? Gracias. –

+0

@KanagaveluSugumar Tomcat ejecuta un servidor HTTP predeterminado en el puerto 8080 (por lo tanto, establece la redirección de puertos para escuchar las solicitudes que llegan al puerto HTTP 80 o especificar el puerto 8080 en las solicitudes de URL). Además, en el archivo server.xml suministrado, verá el siguiente elemento: Para configurar servidor Apache HTTP delante del servidor tomcat, comente esta entrada en server.xml. – sactiw

+0

@sactiw ¡Gracias! –

0

Solo necesita Tomcat o cualquier otro contenedor de servlets de Java (embarcadero, resina, etc.).

0

Tomcat es un contenedor de servlet que tiene su propio servidor http, por lo que si desea correr una guerra, solo necesita un tomcat, pero si desea ejecutar un sitio web que solo incluya archivos estáticos (html, js, css), debe elegir apache mejor, incluso si el tomcat puede hacer esto

Cuestiones relacionadas