Я только что сделал новую установку 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