Y si hablamos de...

por Alberto Molpeceres 

Links





 Bitacoras.com

Ultimos comentarios


Navigation


XML


20031127 jueves noviembre 27, 2003

... de Apaches y Tomcats (2003-11-27 09:04:55.0) Permalink Comentarios [2]

A raíz del problema que tvimos en fin de semana pasado con la conexión Tomcat-Apache en jH, José M. Rus preguntaba porque no teníamos directamente Tomcat en el puerto 80, en lugar de tenerlos juntos. Álvaro comentaba que era porque Apache servía más rápido algunos contenidos, lo típico. Pero como a mi me parece algo más complejo que todo esto, pues aquí voy.

Bien, no tenemos Tomcat en el puerto 80 porque tenemos tres tomcats ejecutándose. ¿Por qué?. Porque realmente no esta en su sano juicio quién piense que es mejor meter en una JVM las (ahora mismo) 8 aplicaciones java de jH que tenerlas en tres separadas. Razones... varias:

  • Hay que proteger el dominio javahispano.org. Este es la base de todo, y no podemos permitirnos que otras aplicaciones tiren el servidor, o reiniciarlo cada dos por tres (se pasa incluso mes y medio sin reiniciarse). Por eso tiene su propio tomcat.
  • Hay aplicaciones que pueden ser potencialmente peligrosas, como es el RollerWeblogger. Da más errores de los esperados, y por eso tiene su propio tomcat, no hacerlo así nos dejaría sin aplicaciones demasiadas veces.
  • Un sistema unix trabaja mejor con 3 JVM que tengan 100 hilos cada una que con una con 300.

¡Ah!, si, pero es que así puedes necesitar más memoria porque tienes que alojar tres JVM. Cierto, tampoco digo que alguién con 256MB de RAM haga esto, nosotros tenemos 1GB en nuestro servidor dedicado (gentileza de NHT-Norwick), y nos lo podemos permitir.

Y ahora paso al tema de Apache. La verdad, para sitios normales, es necesario poner Apache si se cumple alguna de estas condiciones:

  • Se tienen subdominios que necesiten PHP u otras tecnologías (como es nuestro caso en jH)
  • Las web con Java sirven páginas estáticas. Y digo páginas, porque imágenes no cuentan, lo cuanl NO es nuestro caso, donde toda la salida viene de Tomcat.

¿Por qué digo esto?. Sencillo.

  • Las imagenes las cachean los navegadores, por lo que el tiempo de servicio ganado (al hacerlo Apache) en las mismas es despreciable si el usuario visita varias páginas de nuestro sitio, que obviamente es lo que esperamos.
  • Sin embargo ese tiempo extra de servicio (el de pasar las peticiones de Apache a Tomcat), se produce por cada petición, y puede ser que queramos (si podemos) ahorrarnos ese tiempo.

¡Ah!, si, que Apache es más estable. Bueno... no sé, para una web normal (por ejemplo jH, con habitualmente más de 100 usuarios online durante las horas punta), Tomcat es más que suficiente, mucho más. Y bueno, si no os lo creeis, desde este sabado pasado TODAS las peticiones a jH y subdominios (incluidas las imágenes) pasan por Tomcat porque estan unidos con mod_proxy desde que dejó de funcionar el mod_jk.

En todo caso, como siempre, no os tomeis esto como una receta infalible del uso de Apache y Tomcat, tendreis siempre que mirar vuestra situación concreta.


URL de la referencia: http://weblogs.javahispano.org/al/entry/de_apaches_y_tomcats
Comentarios:

Al, te voy a dar otra razón para usar Apache+Tomcat:

Si pones el Tomcat en el puerto 80 te obligas a ejecutarlo como usuario "root", lo cual es un fallo de seguridad. Mejor ejecutarlo en un puerto por encima de 1023 con un usuario "tomcat" creado al efecto y dejar el puerto 80 a Apache (por supuesto también con un usuario no-root)

Un saludo.

Enviado por Juanjo Navarro en noviembre 27, 2003 a las 07:35 PM CET #

Hola Al,
Pues no sere yo quien te diga que no :). Nosotros tenemos 9 instancias de contenedor web corriendo detras de 1 apache, cada una con sus cuantas aplicaciones, relacionadas con mod_proxy para evitar dependencias de modulos externos.
Y bien contento que estoy de haberlo hecho así :).
Otra ventaja es que en caso de necesidad, te permite cambiar el puerto, añadir mas contenedores, cambiarlos de maquina.. de forma totalmente transparente, sin tener que cambiar las direcciones URL que apuntan a tus aplicaciones.

Lo mas cachondo es que ahora, despues de 4 años de un sistema que ha funcionado de coña, resulta que de otros grupos quieren quitar el sistema y volver a 1 sola JVM para todo o poner varias pero apuntar directamente al nombre puerto :(. Sin comentarios.

Enviado por Daniel Lopez en diciembre 07, 2003 a las 07:56 PM CET #

Enviar un comentario:

Nombre:
Correo electrónico:
URL:

Su comentario:

Sintaxis HTML: Deshabilitado
« octubre 2008
lunmarmiéjueviesábdom
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Hoy


Referers

Las visitas de hoy a la página: 90