Configuración de Apache como Proxy Inverso

El objetivo de este manual es configurar el servidor web Apache para que actúe como intermediario. De esta forma, al acceder a la IP o dominio del servidor (Puerto 80), veremos nuestro Odoo sin necesidad de escribir :8069.

1. Activación de módulos necesarios

Apache viene con muchos módulos desactivados por defecto para ahorrar recursos. Necesitamos activar los módulos de proxy para que pueda redirigir el tráfico.

# Instalamos Apache si no lo tenías ya sudo apt install apache2 -y

# Activamos los módulos de proxy y reescritura de cabeceras sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
sudo a2enmod rewrite

# Reiniciamos para aplicar cambios sudo systemctl restart apache2

2. Creación del VirtualHost

Vamos a crear un archivo de configuración específico para tu sitio. Esto le dice a Apache: "Cuando alguien entre por aquí, mándalo al puerto 8069".

# Creamos el archivo de configuración para odoo sudo nano /etc/apache2/sites-available/odoo.conf

Pega el siguiente contenido. Asegúrate de cambiar midominio.com por tu IP o tu dominio real si lo tienes.

<VirtualHost *:80>
    ServerName midominio.com
    ServerAlias www.midominio.com
    
    # Opcional: Si no tienes dominio usa tu IP pública o localhost
    # ServerName 192.168.1.XX

    # Logs específicos para detectar errores fácil
    ErrorLog ${APACHE_LOG_DIR}/odoo_error.log
    CustomLog ${APACHE_LOG_DIR}/odoo_access.log combined

    # Configuración del Proxy (La magia)
    ProxyRequests Off
    ProxyPreserveHost On

    # Redirigir tráfico raíz (/) a Odoo (8069)
    ProxyPass / http://127.0.0.1:8069/
    ProxyPassReverse / http://127.0.0.1:8069/

    # IMPORTANTE: Redirección para el chat de Odoo (Longpolling)
    # El chat suele usar el puerto 8072 por defecto
    ProxyPass /longpolling/ http://127.0.0.1:8072/
    ProxyPassReverse /longpolling/ http://127.0.0.1:8072/
    
    # Arreglar cabeceras para que Odoo sepa que viene de un proxy
    RequestHeader set X-Forwarded-Proto "http"
</VirtualHost>
        

3. Activar el sitio y probar

Ahora tenemos que decirle a Apache que habilite este nuevo archivo de configuración y deshabilite el que viene por defecto (la página de "It Works").

# Desactivamos el sitio por defecto de Apache sudo a2dissite 000-default.conf

# Activamos nuestro sitio de Odoo sudo a2ensite odoo.conf

# Comprobamos que no hemos cometido errores de sintaxis sudo apache2ctl configtest

# Si sale "Syntax OK", recargamos Apache sudo systemctl reload apache2
Resultado final: Ahora, si pones la IP de tu servidor en el navegador (sin :8069), deberías ver directamente la pantalla de login de Odoo.

4. Extra: Ajuste en Odoo (Opcional pero recomendado)

Para mayor seguridad, es bueno decirle a Odoo que está funcionando detrás de un proxy. Editamos de nuevo el config de Odoo.

# Editamos la configuración de Odoo sudo nano /etc/odoo18.conf

Añade o descomenta esta línea al final del archivo:

proxy_mode = True
# Reiniciamos Odoo sudo systemctl restart odoo18

← Volver a la Portada