Apache: Proxy reverso para Odoo

De nuxpy
Ir a la navegación Ir a la búsqueda

En el siguiente artículo se describe un ejemplo de cómo realizar una configuración de proxy reverso en Apache exclusivamente para Odoo.

Adicionalmente, un agregado para generar el certificado digital a través de CertBot. Este ejemplo se hace sobre una distribución Linux Debian en su versión estable más reciente y en la versión estable más reciente de Odoo.

Módulos de Apache

Los módulos necesarios para habilitar la navegación de Odoo a través de proxy reverso de Apache serían:

a2enmod http2
a2enmod headers
a2enmod proxy
a2enmod proxy_html
a2enmod proxy_http
a2enmod proxy_http2
a2enmod rewrite

systemctl restart apache2

Fichero VirtualHost

El fichero para el VirtualHost se pudiera escribir con el nombre del dominio, como usuario root, ejemplo:

   /etc/apache2/sites-available/odoo.nuxpy.com.conf

Y su contenido de la siguiente manera:

<VirtualHost *:80>
    ServerName odoo.nuxpy.com
    ServerAlias www.odoo.nuxpy.com
    ServerAdmin webmaster@nuxpy.com
    <proxy *>
        Order deny,allow
        Allow from all
    </proxy>
    ProxyRequests Off
    ProxyPass / http://127.0.0.1:8069/ 
    ProxyPassReverse / http://127.0.0.1:8069/
    # Fix IE problem (http error 408/409)
    SetEnv proxy-nokeepalive 1
</VirtualHost>
<VirtualHost *:443>
    ServerName odoo.nuxpy.com
    ServerAlias www.odoo.nuxpy.com
    ServerAdmin webmaster@nuxpy.com
    <proxy *>
        Order deny,allow
        Allow from all
    </proxy>
    ProxyPass / http://127.0.0.1:8069/ 
    ProxyPassReverse / http://127.0.0.1:8069/
    ProxyRequests Off
    ProxyPreserveHost On
    # Headers
    Header set Content-Security-Policy "default-src https: data: 'self' 'unsafe-inline' 'unsafe-eval'; upgrade-insecure-requests;"
    Header set X-Forwarded-Host "127.0.0.1"
    Header set X-Forwarded-Proto "https"
    Header set X-Content-Type-Options "nosniff"
    Header set X-XSS-Protection "1; mode=block"
    Header set Referrer-Policy "strict-origin-when-cross-origin"
    Header set Feature-Policy "fullscreen 'self'"
    Header set x-permitted-cross-domain-policies "none"
    # Fix IE problem (http error 408/409)
    SetEnv proxy-nokeepalive 1
</VirtualHost>

Se habilita dicho VirtualHost:

a2ensite odoo.nuxpy.com.conf

Se recarga el servicio de Apache:

systemctl reload apache2

Con esto debería estar arriba el VirtualHost.

Creación certificado Let's Encrypt con certbot

Como usuario root instalar el certbot para Apache:

aptitude install python3-certbot-apache certbot

Teniendo el módulo certbot para Apache instalado, se realiza la configuración del dominio:

certbot --apache -d odoo.nuxpy.com -d www.odoo.nuxpy.com

Se recomienda hacer el registro de wwww.odoo en el DNS de tipo A, apuntando directamente a la dirección IP.

Finalmente se activa el cron:

crontab -e

Y se agrega al final del fichero el siguiente contenido:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

Temas relacionados