☠
Más allá de este punto se encuentran los antiguos dragones
☠
Esta sección de la documentación en Español del Sistema de gestión de contenidos Plone ya no está bajo activo mantenimiento.
Esta sección incluye tanto las referencias para tecnologías antiguas (Plone 2.x, Plone 3.x).
Algunas practicas descritas en estos documentos tal ves aun funcionen, pero no son recomendado
para ser usadas en su desarrollados activos de Plone. Utilice a su propio riesgo.
Si usted llegó a esta página haciendo una búsqueda en Internet se recomienda
ver también la pagina de Documentación en Español de Plone.
Cuando se configura el servidor Zope y Plone detrás de un servidor Web generalmente
se hace como servidor proxy reverso y existentes varias razones para este tipo
de configuración:
Seguridad: el servidor proxy es una capa adicional de defensa y por lo tanto
protege los servidores web. Para el servidor Zope permite enmascarar el puerto de
publicación del mismo, a través del patrón de diseño “Front-controler” que permite
aplicar nuevos direccionamientos a todas las peticiones del puerto 80 aplicando
reglas de reescritura de direcciones URLs.
Configurar un firewall en su servidor Web, esta configuración tiene la finalidad
es reforzar la seguridad de aplicaciones Web.
Cifrado / Aceleración SSL, cuando se crea un sitio web seguro, habitualmente el
cifrado SSL no lo hace el mismo servidor web, sino que es realizado por el “proxy reverso”,
el cual está equipado con un hardware de aceleración SSL (Security Sockets Layer).
Distribución de Carga, con el “proxy reverso” puede distribuir la carga entre
varios servidores web. En ese caso, el “proxy reverso” puede necesitar reescribir
las direcciones URLs de cada página web (traducción de la dirección URL externa a la
dirección URL interna correspondiente, según en qué servidor se encuentre la información
solicitada).
Caché de contenido estático, con un “proxy reverso” puede descargar los servidores
web almacenando contenido estático como imágenes u otro contenido gráfico.
El servidor Zope viene con un objeto llamado Virtual Host Monster que le ayuda a hacer
configuraciones de hosting virtual. La técnica de hosting virtual es una forma de servir
a muchos sitios web con un servidor Zope.
Hay que entender varios conceptos antes de continuar:
vhost
Es una nomenclatura del Ingles “Hosting Virtual” que hace referencia del Hosting Virtual.
Hosting Virtual
Según la documentación sobre Hosting Virtual en Apache Versión 2.0 ‘El término Hosting
Virtual se refiere a hacer funcionar más de un sitio web (tales como www.company1.com y
www.company2.com) en una sola máquina. Los sitios web virtuales pueden estar “basados en
direcciones IP”, lo que significa que cada sitio web tiene una dirección IP diferente, o
“basados en nombres diferentes”, lo que significa que con una sola dirección IP están
funcionando sitios web con diferentes nombres (de dominio). El hecho de que estén funcionando
en la misma máquina física pasa completamente desapercibido para el usuario que visita esos
sitios web’.
VHM
Es una nomenclatura del Ingles Virtual Host Monster que hace referencia al objeto
encargado de Hosting Virtual del servidor Zope.
Virtual Host Monster
Según la documentación sobre VirtualHostMonster en la Wiki de Zope2 ‘Es un objeto,
usualmente encontrado en la carpeta raíz de la instancia de Zope, el cual hace trabajar
a los hosts virtual’.
Proxy inverso
Según la documentación sobre Proxy en su sección Reverse Proxy/Proxy inverso en
Wikipedia Español ‘Un reverse proxy es un servidor proxy instalado en el domicilio
de uno o más servidores web. Todo el tráfico entrante de Internet y con el destino de
uno de esos servidores web pasa a través del servidor proxy’.
Reescritura de URL
Según la documentación sobre URL rewriting (Rewrite engine) en Wikipedia Ingles
‘La reescritura de direcciones URL (a veces conocida como dirección URL de adornadas,
cortas o amigable a los motores de buscadores) le permite modificar la apariencia de
las dirección URL Web, para esto usa un motor de reescritura de URL, por lo generar
incorporado en un Servidor Web. Esta técnica es usada para proveer enlaces web cortos
y de mayor entendimiento y relevancia a páginas Web. La técnica añade un grado de
separación entre los archivos que se utilizan para generar una página web y la dirección
URL que se presenta al mundo.’.
Servidores Web
Según la documentación sobre Servidor web en Wikipedia Español ‘es un programa informático
que procesa una aplicación del lado del servidor realizando conexiones bidireccionales
y/o unidireccionales y síncronas o asíncronas con el cliente generando o cediendo una
respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido
por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión
de todos estos datos suele utilizarse algún protocolo. Generalmente se utiliza el protocolo
HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI.
El término también se emplea para referirse al ordenador que ejecuta el programa.’.
EL objeto Virtual Host Monster enmascara la dirección URL devuelta por el servidor Zope como
response la cual es publicada como http://www.cliente1.com/ en lugar de http://127.0.0.1:8080/.
Está instalado previamente en el servidor Zope (este objeto se llama virtual_hosting y se encuentra
en el directorio del raíz del servidor Zope y puede ser consultado desde la interfaz administrativa de
Zope) y no necesita ninguna configuración en Zope.
Su configuración sólo se produce a través de una regla de reescritura de la dirección URL, adicionalmente
se debe configurar su servidor web como un proxy inverso hacia el servidor Zope.
La regla de reescritura de la dirección URL de VHM luce algo así:
Esta dirección URL de VHM previa tiene siete partes:
^/(.*)
¿Qué significa eso? Bueno, esto es una expresión regular, que coincide con casi todo. Voy a explicarlo con calma:
El carácter ^ significa empezar por el principio, el principio es donde está justo después del nombre de dominio
(por ejemplo, después de http://www.cliente1.com).
El carácter / significa que coincida con el primer / que venga (después del nombre de dominio, por ejemplo,
http://www.cliente1.com/).
El carácter ( significa recordar todo lo que allá coincidido entre este carácter y ) y lo llaman como $1
El carácter . significa que coincida con cualquier carácter simple que no sea un espacio en blanco (espacios o
tabulaciones).
El carácter * significa en realidad el operador de la izquierda puede ser igualado a 0 o más veces - en otras
palabras, coinciden con el texto continuo hasta llegar a una línea final o espacio en blanco.
El carácter \ significa salto de linea en la configuración del servidor Web y se utiliza para hacer las configuraciones
del servidor Web más legibles por humanos.
En pocas palabras ^/(.*) significa Coincidir todo lo que empieza con un ``/`` y guardar todos los caracteres
después del carácter ``/``, esto luego es procesado por la variable $1 que mas adelante se explica que función cumple.
Esto es para el aplicar el proxy reverso en su servidor Web. Esto configura a cual servidor debería acceder, además incluir
el protocolo, host y puerto. En este ejemplo el proxy reverso accede al servidor Zope en el puerto 8080 en el mismo host
usando el protocolo http. En Apache 2.2 se hace con el módulo mod_proxy y Nginx con su configuración por defecto.
VirtualHostBase
Esta es la palabra clave mágica para iniciar el hosting virtual. ¡Usted no debe agregar un objeto llamado VirtualHostBase
en el directorio raíz de su Zope!
http
Es el primer segmento de ruta después del VirtualHostBase define el protocolo del la dirección URL del vhost.
intranet.cliente1.com:80
Es el segundo elemento después del VirtualHostBase y define el servidor y el puerto. Junto con el protocolo es la parte base
de la dirección URL, en este ejemplo http://intranet.cliente1.com:80. Como el VirtualHostBase el protocolo y servidor no
son objetos reales. Ellos son solo colocados dentro de la dirección URL para propósitos de configuración y estos son despojados
de la dirección URL después de la configuración del host virtual para cada solicitud.
cliente1_intranet
Ahora el verdadero recorrido a través de servidor Zope es que inicia. Después de configurar la parte de protocolo y el servidor
de la nueva dirección URL que esta atravesando a través de Zope a la nueva raíz virtual para el host virtual. Usted puede agregar
cero o más objetos aquí.
VirtualHostRoot
Finalmente la palabra clave mágica con la que se ha llegado al nuevo raíz virtual para el vhost. Cada cosa después del
VirtualHostRoot es visible en el navegador Web.
Caso especial _vh_documentos
Imagine que usted quiere tener http://intranet.cliente1.com/documentos/ como la dirección URL de su dirección URL virtual.
Entonces usted puede obtener el efecto usando la declaración especial _vh_. Cualquier segmento de ruta iniciando con _vh_
es despojado de la dirección URL para ser recorrido a través de Zope y volver a ser agregado sin _vh_ después de recorrido.
Así mismo como el ^/(.*) y el \$1 ambos son tipos de expresión regular hacia alguna sección especifica de su sitio,
un ejemplo, puede ser una sección llamada documentos. Entonces el valor obtenido de la expresión ^/(.*) se almacena en
la variable $1”.
Nota
Usted no puede crear un objeto llamado VirtualHostBase o VirtualHostRoot
en su Zope ni debe agregar un objeto con el mismo ID de su VHM. Es posible que
funcione, pero también puede dañar el sitio.
En el caso de que usted ha establecido reglas de virtual hosting de modo
que ya no se Zope le permiten acceder a la interfaz de gestión, puede agregar
_SUPPRESS_ACCESSRULE" a la dirección URL para desactivar VirtualHostMonster.
El código fuente de este archivo esta hospedado en GitHub. Todos pueden
actualizar y corregir errores en este documento con unos clic -
sin necesidad de descargar.
Presione el botón Fork. Este creara su propia copia personal de la documentación.
Edite los archivos usando el editor de texto de GitHub desde su navegador Web
Rellene en la caja de texto Commit message al final de la pagina indicando por que
usted realizo estos cambios. Presione el botón Propose file change próximo a ese cuando haya finalizado.
Luego diríjase a la página Send a pull request (no será necesario rellenar ningún texto adicional).
Sólo tiene que pulsar el botón Send pull request.
Sus cambios serán consultados por un revisor dentro de la pestaña Pull requests del proyecto en Github.
Para mas información básica acerca de como actualizar este manual
y referencia a sintaxis Sphinx, por favor consulte la guía
Escribiendo y actualizando el manual.