¿Cómo configurar Apache para que redirija al puerto ServerName?

¿Cómo configurar Apache para que redirija al puerto ServerName?

Acabo de realizar una nueva instalación de Ubuntu de apache2 y haproxy. Haproxy escucha en el puerto 80, apache en el 3080, este último oculto desde el exterior.

Mi problema es que cuando uso un nombre de carpeta sin una barra diagonal, por ejemplo, example.com/some/folderApache redirige automáticamente a la misma dirección con una barra diagonal, pero también al puerto incorrecto example.com:3080/some/folder/.

Los documentos de Apache me sugieren que mi problema radica en la configuración de CanonicalName/Port, pero cualquier combinación de ellos no parece funcionar. ¿Qué podría estar malinterpretando?

Mi anfitrión virtual:

<VirtualHost *:3080>

    ServerName http://example.com:80
    UseCanonicalName On
    UseCanonicalPhysicalPort On

    DirectoryIndex index.php index.html
    DocumentRoot /var/www/main

    <Directory /var/www/main>
        Options -Indexes
        Options -FollowSymLinks
        AllowOverride All

        <Files ~'^\.'>
            Order allow,deny
            Deny from all
            Satisfy all
        </Files>
    </Directory>
</VirtualHost>

Respuesta1

No utilice ninguno de los dos;

UseCanonicalName Off
UseCanonicalPhysicalPort Off

HAProxy no interfiere (normalmente) con el Hostencabezado enviado, por lo que esta configuración debe tener las redirecciones generadas creadas con el Locationencabezado correcto. Si esto no ayuda, ¿proporciona el Locationencabezado exacto que se envía en la respuesta?

Por cierto, ServerNamepuede simplificarse y probablemente no debería tener un puerto en el que su vhost no esté escuchando:

ServerName example.com

información relacionada