Diferencia entre revisiones de «Apache: Proxy reverso para Odoo»
Línea 55: | Línea 55: | ||
ProxyPreserveHost On | ProxyPreserveHost On | ||
# Headers | # Headers | ||
− | |||
− | |||
− | |||
Header set Content-Security-Policy "default-src https: data: 'self' 'unsafe-inline' 'unsafe-eval'; upgrade-insecure-requests;" | 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-Forwarded-Proto "https" | ||
Header set X-Content-Type-Options "nosniff" | Header set X-Content-Type-Options "nosniff" | ||
− | |||
− | |||
Header set X-XSS-Protection "1; mode=block" | Header set X-XSS-Protection "1; mode=block" | ||
Header set Referrer-Policy "strict-origin-when-cross-origin" | Header set Referrer-Policy "strict-origin-when-cross-origin" |
Revisión del 18:18 9 abr 2021
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 recomiendo 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
Si te gustó este artículo y deseas colaborar para el mantenimiento y crecimiento de la información, puedes apoyar a través de: