
Ich habe gerade eine neue Ubuntu-Installation von Apache2 und Haproxy durchgeführt. Haproxy lauscht auf Port 80, Apache auf 3080, wobei letzterer von außen verborgen ist.
Mein Problem besteht darin, dass bei Verwendung eines Ordnernamens ohne abschließenden Schrägstrich beispielsweise example.com/some/folder
Apache automatisch auf die gleiche Adresse mit Schrägstrich, aber auch auf den falschen Port weiterleitet, example.com:3080/some/folder/
!
Laut Apache-Dokumentation liegt mein Problem an der CanonicalName/Port-Konfiguration, aber Kombinationen davon scheinen nicht zu funktionieren. Was könnte ich falsch verstanden haben?
Mein virtueller Host:
<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>
Antwort1
Verwenden Sie keines von beiden;
UseCanonicalName Off
UseCanonicalPhysicalPort Off
HAProxy manipuliert (normalerweise) den gesendeten Host
Header nicht, daher sollte diese Konfiguration die generierten Weiterleitungen mit dem richtigen Location
Header erstellen. Wenn dies nicht hilft, geben Sie dann den genauen Location
Header an, der in der Antwort gesendet wird?
Übrigens ServerName
kann Ihr Vorgang vereinfacht werden und sollte wahrscheinlich keinen Port haben, auf dem Ihr virtueller Host nicht lauscht:
ServerName example.com