Ejecutando Zope y Plone con Servidor Web Nginx

Este documento busca explicar los conceptos intrínsecos para instalar y configurar un servidor Web Nginx en frente del servidor Zope/Plone, a través de técnicas de reescritura URL.

Acerca de Nginx

Según la documentación sobre Nginx en Wikipedia Español ‘es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico (IMAP/POP3).’.

Instalar y configurar Servidor Web Nginx

Para instalar debe iniciar sesión como usuario “root” ejecute el siguiente comando:

# aptitude install nginx

Luego se debe agregar la configuración respectiva en Nginx con el siguiente comando:

# vim /etc/nginx/nginx.conf

Y agregue la siguiente configuración:

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    access_log      /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    #gzip  on;

    server_names_hash_bucket_size 64;

    server_name_in_redirect off;
    server_tokens           off;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Regla de Reescritura de URL para Zope

Y defina la política de virtual host del sitio, con el siguiente comando:

# vim /etc/nginx/sites-available/cliente1-intranet

Agregue la siguiente configuración:

server {
    # DNS/IP y Puerto en que escucha la aplicación
    listen   *:80;

    # Nombre del servidor
    server_name  intranet.cliente1.com;

    # Tamaño máximo de subida de archivos
    client_max_body_size 24M;

    # Tamaño máximo de buffer de archivos
    client_body_buffer_size 128K;

    # Archivo de registro de acceso del sitio web
    access_log  /var/log/nginx/cliente1-intranet.access.log;

    # Archivo de registro de error del sitio web
    error_log  /var/log/nginx/cliente1-intranet.error.log error;

    # Interfaz Administrativa de Zope
    location /manage {
            proxy_pass       http://127.0.0.1:8080/VirtualHostBase/http/\
            intranet.cliente1.com:80/manage_main/VirtualHostRoot/;
            proxy_set_header Host $host;
        }

    # Intranet del cliente1
    location / {
            proxy_pass       http://127.0.0.1:8080/VirtualHostBase/http/\
            intranet.cliente1.com:80/cliente1_intranet/VirtualHostRoot/;
            proxy_set_header Host $host;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
            root   /var/www/nginx-default;
    }

}

Realice un enlace simbólico desde el directorio de Nginx sites-available/ al directorio sites-enabled/, para que su configuración previa este disponible:

# ln -s /etc/nginx/sites-available/cliente1-intranet \
/etc/nginx/sites-enabled/cliente1-intranet

Reinicie el servidor Web

Luego reinicie su servidor Nginx con el siguiente comando:

# /etc/init.d/nginx reload
los comentarios son proporcionados por Disqus

Editar este documento

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.

  1. Vaya hacia el articulo Ejecutando Zope y Plone con Servidor Web Nginx en GitHub.
  2. Presione el botón Fork. Este creara su propia copia personal de la documentación.
  3. Edite los archivos usando el editor de texto de GitHub desde su navegador Web
  4. 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.
  5. 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.
  6. 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.