Ich habe einen Nginx
Server am 80
Port, der als Proxy fungiert und Apache 2.2
abhört127.0.0.1:8080
Wenn ich darauf zugreife http://hostname/subfolder/
, funktioniert es großartig.
Wenn ich darauf zugreife http://hostname/subfolder
, leitet es mich weiter, http://hostname:8080/subfolder/
was falsch ist.
Soweit ich sehe, wird die falsche Weiterleitung von Apache aber zurückgegeben UseCanonicalName
und UseCanonicalPhysicalProxy
beide sind auf eingestelltOff
Irgendwelche Ideen, wie man das behebt?
apache-2.2
nginx
Quark
quelle
quelle
Antworten:
Ich bin auch darauf gestoßen und konnte es mit einer proxy_redirect-Direktive direkt nach meiner proxy_pass-Direktive in meiner nginx-Konfiguration beheben:
Dies ist meine vollständige Nginx-Konfiguration (In meinem Fall befindet sich Apache auf Port 81 und hostet zwei Sites. Ich habe zwei ortsspezifische proxy_redirect-Zeilen hinzugefügt, da ich nicht sicher bin, wie ich eine einzelne generische hinzufügen soll.)
Hinweis: Dies war vor 5 Jahren für eine Version vor 1.0 von Nginx. Hier sind die Dokumente für proxy_redirect für die aktuelle Version: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
quelle
Wenn Ihre Servername-Direktive in Apache auf "Hostname: 8080" festgelegt ist, entfernen Sie ": 8080" oder ändern Sie sie in "Hostname: 80". Sie können auch "proxy_set_header Host $ host: 80" hinzufügen.
quelle
Ich hatte dieses Problem vor langer Zeit. Wie ich mich erinnere, hat es mit dem HTTP-RFC zu tun. Ein Schrägstrich am Ende bezeichnet ein Verzeichnis (/ test /), kein Schrägstrich am Ende ist eine Datei (/ test).
Kurz gesagt, fügen Sie eine Umschreiberegel hinzu, die der Anforderung einen abschließenden Schrägstrich hinzufügt, falls keine vorhanden ist.
Schauen Sie sich Gelöst an: Problem mit abschließendem Schrägstrich mit dem Nginx-Server
HTP
quelle
Ich bin kürzlich auf genau dieses Problem gestoßen. Während die vorgeschlagenen Lösungen funktionieren, bietet Nginx eine integrierte Lösung:
Dokumentation unter http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
Hier ist ein vollständiges Beispiel für die Verwendung:
quelle
Möglicherweise setzt nginx die Proxy-Header nicht so, dass Apache erfährt, wie die ursprüngliche Anforderung aussah.
In Nginx:
Siehe http://wiki.nginx.org/LikeApache
quelle