Назад | Перейти на главную страницу

Как настроить Apache для перенаправления на порт ServerName?

Я только что сделал новую установку Apache2 и haproxy в Ubuntu. Haproxy слушает порт 80, apache - порт 3080, причем последний скрыт извне.

Моя проблема в том, что при использовании имени папки без косой черты, например example.com/some/folder apache автоматически перенаправляет на тот же адрес с косой чертой, но также на неправильный порт, example.com:3080/some/folder/!

Документы Apache предполагают, что моя проблема связана с конфигурацией CanonicalName / Port, но любые их комбинации, похоже, не работают. Что я могу неправильно понять?

Мой виртуальный хост:

<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>

Не используйте ни то, ни другое;

UseCanonicalName Off
UseCanonicalPhysicalPort Off

HAProxy (обычно) не связывается с отправленными Host заголовок, поэтому эта конфигурация должна иметь сгенерированные перенаправления, построенные с правильным Location заголовок. Если это не помогает, укажите точный Location заголовок, который отправляется в ответе?

Кстати, твой ServerName можно упростить, и, вероятно, не должно быть порта, который не прослушивает ваш виртуальный хост:

ServerName example.com