Configurar Odoo y Apache 2 en Ubuntu 15.10

Introducción

Odoo y el servidor Apache 2 en Ubuntu 15.10

Instrucciones para configurar Odoo con el servidor Apache 2 usando el instalador de Debian / Ubuntu. Los objetos específicos de este articulo son los siguientes:

  • Instalar el servidor Web Apache 2.
  • Instalar el servidor de aplicaciones Odoo.
  • Aplicar configuraciones de redireccionamiento desde el puerto 80 al puerto 8069.

Instalar el servidor Web Apache 2

Para instalar el servidor Web Apache 2, consulte el siguiente articulo https://lcaballero.wordpress.com/2017/07/07/instalar-apache-2-http-server-en-ubuntu-15-10/

Instalar el servidor de aplicaciones Odoo

Para instalar el servidor de aplicaciones Odoo, consulte los siguientes artículos:

Configuración de host virtual

Por defecto, el servidor de aplicaciones Odoo se ejecuta en el puerto 8069, como se ilustra en la siguiente captura:

Odoo ejecutándose en el puerto 8069

Odoo ejecutándose en el puerto 8069

Se requiere aplicar configuraciones de redireccionamiento desde el puerto 80 del servidor Web Apache 2 para el puerto 8069 del servidor de aplicaciones Odoo,

¿Qué significa Virtual Host?

El término Virtual Host se refiere a la práctica de ejecutar más de un sitio Web en una sola máquina, por ejemplo:

  • Dominio cliente1.misistema.com
  • Dominio cliente2.misistema.com

Los hosts virtuales pueden ser “basados en IP”, lo que significa que usted tiene una dirección IP diferente para cada sitio web, o “basado en nombre”, lo que significa que tiene varios nombres en ejecución en cada dirección IP. El hecho de que se estén ejecutando en el mismo servidor físico no es evidente para el usuario final.

Apache fue uno de los primeros servidores en dar soporte a los hosts virtuales basados en IP desde el primer momento. Las versiones 1.1 y posteriores de Apache admiten hosts virtuales basados en IP y basados en nombres (vhosts). La última variante de los hosts virtuales se denomina a veces hosts virtuales host-based o non-IP.

Entonces, para crear el VirtualHost de Apache 2, con el siguiente comando:

$ sudo nano /etc/apache2/sites-available/misistema.conf

Seguidamente agregue la siguiente configuración:

<VirtualHost *:80>
 ServerName misistema.com
 ServerAlias www.misistema.com
 ServerAdmin mi@correo-electronico.com

 LogLevel warn
 ErrorLog /var/log/apache2/misistema.com.error.log
 CustomLog /var/log/apache2/misistema.com.access.log combined

 ProxyRequests Off
 ProxyPreserveHost On
 ProxyPass / http://localhost:8069/
 ProxyPassReverse / http://localhost:8069/
</VirtualHost>

La directiva “ServerName” hace referencia a la URL a la que se dirige la petición. Deberá configurarse una entrada en el DNS que apunte al servidor.

La directiva ProxyRequests Off evita que el front-end (Apache 2 en el puerto 80) sea utilizado como proxy, es decir, que usuarios puedan saltar al front-end y de ahí a cualquier otra dirección. Es muy importante dejarlo deshabilitado para evitar problemas de seguridad o incluso legales.

La directiva ProxyPreserveHost On permite que el salto del servidor de front-end (Apache 2 en el puerto 80) al de back-end (Odoo en el puerto 8069) sea transparente para el usuario. Si no estuviera habilitada, el usuario se dirigiría a http://frontend.organización.com pero inmediatamente vería como la dirección cambia a http://backend.organizacion.com. Además, como en este supuesto el servidor de back-end no es visible desde Internet el usuario vería un error.

Por último, las directivas ProxyPass y ProxyPassReverse gestionan el salto y la vuelta del servidor de front-end (Apache 2 en el puerto 80) al de back-end (Odoo en el puerto 8069).

Antes de continuar se debe explicar que técnica de redireccionamiento se aplica en este vhost y su funcionamiento, el cual procedo a comentar:

¿Qué es un proxy inverso?

Es un dispositivo de seguridad que suele desplegarse en la DMZ (En seguridad informática, una zona desmilitarizada (conocida también como DMZ, sigla en inglés de demilitarized zone) o red perimetral es una zona segura que se ubica entre la red interna de una organización y una red externa, generalmente en Internet.) de una red para proteger a los servidores HTTP de una intranet corporativa, realizando funciones de seguridad que protegen a los servidores internos de ataques de usuarios en Internet.

Diagrama de Proxy inverso.

Diagrama de Proxy inverso. Fuente: http://www.fernandomenendez.es/

El servidor proxy inverso protege a los servidores HTTP internos proporcionando un punto de acceso único a la red interna. Proporcionando un punto de acceso único a todos los servidores HTTP de una red interna ofrece ventajas de seguridad y características de acceso a red.

Entonces, en la configuración aplicada se incluye técnicas de proxy inverso usando servidor Web Apache 2, para el cual necesita habilitar los módulos proxy y proxy_http para aplicar esta técnica la cual direccionara peticiones HTTP desde el puerto 80 al puerto 8069 del servidor de aplicación Odoo, para realizar esto ejecute ejecute el siguiente comando:

$ sudo a2enmod proxy proxy_http

Luego de habilitar los módulos, reinicie el servicio para el servidor Web Apache 2, con el siguiente comando:

$ sudo service apache2 restart

Habilitar un host virtual

Para habilitar un host virtual en Apache2 usted debe usar el script llamado a2ensite, el cual habilita el sitio especifico (el contiene un bloque con la directiva <VirtualHost>) con la configuración Apache2. Eso lo hace creando enlaces simbólicos en el directorio /etc/apache2/sites-enabled. Del mismo modo, el script llamado a2dissite deshabilita un sitio para remover esos enlaces simbólicos. No es un error permitir un sitio que ya está habilitado, o deshabilitar uno que ya está deshabilitado.

Apache trata al primer host virtual habilitado especialmente ya que cada solicitud que no coincide con ninguna directiva real está siendo redirigida allí. Por lo tanto, debería llamarse 000-default para ordenar antes de que los hosts restantes se carguen primero.

sites-available vs sites-enabled

La diferencia es que los sitios virtuales listados en el directorio /etc/apache2/sites-enabled es que estos sitios son servidos por Apache 2.En el directorio /etc/apache2/available allí hay sitios virtuales que existen en su servidor, pero la gente no puede acceder a ellos porque aún no están habilitados.

/etc/apache2/available: este directorio tiene archivos de configuración para Apache2 Virtual Hosts. Los hosts virtuales permiten que Apache2 se configure para varios sitios que tienen configuraciones separadas.

/etc/apache2/sites-enabled: como mods-enabled, sites-enabled contiene enlaces simbólicos al directorio /etc/apache2/available. Del mismo modo, cuando un archivo de configuración en sites-available está conectado simbólicamente, el sitio configurado por él estará activo una vez que el servicio de Apache2 se reinicie.

Entonces, para habilitar nuestro vhost de guardado en el archivo /etc/apache2/available/misistema.conf, ejecutando el siguiente comando:

$ sudo a2ensite misistema.conf

Recargue la configuración del servicio para el servidor Web Apache 2, con el siguiente comando:

$ sudo service apache2 reload

Acceder al proxy inverso de Apache 2

Por ultimo, abra el navegador en la siguiente dirección http://misitio.com/, en la cual podrá ver aplicadas las técnicas de proxy inverso en el cual puedo “encapsular” la dirección interna y el puerto de Odoo haciendo un redireccionamiento desde el puerto 80 al puerto 8069, como se ilustra en la siguiente captura:

Acceder Odoo ejecutado técnicas de proxy reverso

Acceder Odoo ejecutado técnicas de proxy inverso

Conclusiones

De esta forma usted ha aprendido a:

  • Instalar el servidor Web Apache 2.
  • Instalar el servidor de aplicaciones Odoo.
  • Configurar un VirtualHost con configuraciones de proxy inverso.
  • Habilitar hosts virtuales (vhosts) de Apache 2.
  • Aplicar cambios en el servicio de Apache 2.

Referencias

¡Haz tu donativo!

Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dolares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.


PayPal - The safer, easier way to pay online!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s