Orion escribió:Hola, una duda práctica:
¿Cómo se relaciona el servidor web con el CMS? ¿Incorpora el CMS un servidor Web?
Hola Orion.
Un CMS puede ser visto como una única aplicación para crear y gestionar el contenido o como un conjunto de ellas. En los casos que comentas se utiliza la misma plataforma con un entorno para utilizar lo que está publicado y otro para lo que se está creando, pero ambos en el mismo servidor y la misma aplicación, se cambia de uno a otro utilizando una opción en el menú correspondiente. En otros casos de herramientas propietarias la complejidad suele ser bastante más alta y normalmente se tienen como entornos separados incluso puede que en servidores distintos.
Desde el punto de vista de cómo lo implantas en producción puedes tener muchas alternativas. Si la plataforma va a ser muy sencilla, como por ejemplo la web coporativa de una entidad local pequeña, es posible que nos sirva un par de servidores web con balanceadores por delante, por aquello de la alta disponibilidad, con un CMS en PHP, por ejemplo el Joomla que dice JFuentes, y MySQL como motor de BD. En este caso el servidor web, por ejemplo Apache, es imprescindible porque es el contenedor de la aplicación en scripting en PHP.
Si prefieres utilizar Java, con el OpenCms por ejemplo, necesitas algo similar pero en lugar de servidores web puedes poner directamente el contenedor de servlets y JSP, por ejemplo Tomcat, replicado. Sería éste el que recibiría las peticiones http/https de los balanceadores directamente y ofrecería la respuesta del servlet/JSP correspondiente.
Este tipo de arquitectura, aunque es posible, no es recomendable y no se suele utilizar en la práctica en entornos de producción. Lo he puesto porque es ilustrativo para la explicación.
Lo que se suele hacer en estos casos es colocar servidores web entre los contenedores de servlets/JSP y los balanceadores. Es decir, es el mismo caso que antes pero como hace falta un contenedor para la aplicación basado en Java, se pone detrás de los servidores web.
Hay muchos motivos para hacer esto y supongo que ya ha sido debatido en el foro en otras ocasiones así que no lo extiendo más.
Orion escribió:No tengo claro es si con el CMS generas el contenido y lo dejas en el directorio del que tira un servidor web externo (no existe acoplamiento entre ellos), si éste viene integrado en el CMS o si la integración entre el servidor Web y el CMS se hace de alguna otra manera. Me refiero a CMS open source, tipo openCMS y demás.
Tenemos que distinguir entre contenido estático y dinámico. En el primer caso se suele dejar en algún directorio que los servidores web muestren directamente. El contenido dinámico se genera en el contenedor correspondiente de aplicación y se envía de vuelta mediante los servidores web y los balanceadores por la petición recibida, hasta el cliente web del usuario.
Por lo tanto el CMS en sí no tiene por qué traer un servidor web, es más, un CMS no trae un servidor web si no que se-instala-en un servidor web, si es de tipo scripting como PHP. En caso de OpenCms queda más claro porque necesita un Tomcat para la aplicación y por delante podemos poner el servidor web.
Orion escribió:Por ejemplo: ¿necesito tener openCMS + Apache?
Muchas gracias.
En realidad sería más correcto decir necesitamos Tomcat, que aloja el OpenCms, + Apache, que atiende las peticiones http/https antes de pasárselas al OpenCms en Tomcat.
Por necesitar, no necesitas el Apache, puedes poner Tomcat respondiendo directamente como servicio web ya que tiene este tipo de funcionalidad, pero como ya he comentado no se suele hacer así.
Para comunicar los servidores web con los Tomcat, los IIS o lo que prefieras poner como contenedor por detrás, necesitas el correspondiente conector en los Apache. En el caso de Tomcat sería por ejemplo el AJP.