Para configurar Nginx como proxy inverso para Odoo, debes modificar la configuración para hacer un proxy_pass
al backend de Odoo en el puerto en el que se esté ejecutando (generalmente 8069 para la interfaz web y 8072 para el servicio de live chat).
Aquí está la configuración ajustada para que actúe como proxy inverso hacia un servidor Odoo en localhost:8069
:
server {
server_name odoo.example.com
;
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/odoo.example.com
/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/odoo.example.com
/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://127.0.0.1:8069;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}
location /longpolling/ {
proxy_pass http://127.0.0.1:8072;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}
}
server {
if ($host = odoo.example.com
) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name odoo.example.com
;
return 404; # managed by Certbot
}
Explicación:
- Se ha reemplazado el bloque
location /
original conproxy_pass
apuntando a127.0.0.1:8069
, que es el puerto en el que Odoo ejecuta su interfaz web. - Se ha añadido un
location /longpolling/
para manejar el servicio de chat en vivo de Odoo (longpolling
en el puerto 8072). - Se mantienen los encabezados necesarios (
proxy_set_header
) para asegurar que Odoo reciba correctamente las solicitudes y respete la configuración de HTTPS. - Se mantiene la configuración SSL de Let's Encrypt.
Después de hacer estos cambios:
- Prueba la configuración de Nginx con:
sudo nginx -t
- Si no hay errores, recarga Nginx:
sudo systemctl reload nginx
- Asegúrate de que Odoo está corriendo en los puertos 8069 y 8072:
sudo ss -tlnp | grep odoo
- Si es necesario, revisa los logs de Nginx para depuración:
sudo journalctl -u nginx --no-pager --since "10 minutes ago"
Con esta configuración, tu instancia de Odoo debería estar accesible en https://odoo.example.com