2016-07-03 14 views
1

Ich habe einen einfachen Reverse-Proxy-Server mit Apache 2.4.20, der HTML-Dateien von einem internen Apache-Webserver erhält. Das Seitenabruf- und URL-Neuschreiben funktioniert einwandfrei, aber es tritt ein Problem auf.Mein Apache Reverse Proxy fügt Code zum Hauptteil der abgerufenen HTML-Dateien von head tag

Nachdem eine Webseite über den Proxy übergeben wurde, sind drei Dinge falsch: Der Inhalt des head-Tags erscheint im Hauptteil, das head-Tag fehlt und ein mysteriöses ">" -Zeichen in einem "p" -Tag wird hinzugefügt die Oberseite des Body-Tags.

Dieser zusätzliche Code <p>></p> schlägt mir etwas falsch mit der Erkennung eines HTML-Tags (es könnte ein Teil von <head> sein). Auch ohne Inhalt im head-Tag beginnt das body-Tag immer noch mit diesem komischen Code.

Proxied Inhalt - gesehen in Entwickler-Tools, Google Chrome-Browser:
Screenshot image described on above line. http://i.stack.imgur.com/UbxD8.png

Proxied Inhalt - ursprüngliche Quelle der abgerufenen Datei:
Screenshot image described on above line. http://i.stack.imgur.com/nRs4R.png

Original-HTML-Datei - direkt geöffnet vom internen Server-Dateisystem:
Screenshot image described on above line. http://i.stack.imgur.com/alxtr.png

Proxy Server-Konfigurationsdatei - Abschnitt über Transfer und ProxyHTML:
Screenshot image described on above line. http://i.stack.imgur.com/79t6b.png

weiß, dass ich der ursprüngliche Server ordnungsgemäß funktioniert, so ist dies nicht das Problem verursacht.
Hier ist ein Screenshot der HTML-Datei direkt aus dem ursprünglichen Server in einem Browser (auf der Proxy-Server-Vorrichtung) betrachtet, zusammen mit Source-Code gezeigt in Chrome Developer Tool:
Screenshot image described in previous sentence. http://i.stack.imgur.com/y81UM.png

aktualisieren: Wie erwartet, mod_proxy_html ist die Hauptursache für mein Problem (Ausschalten der ursprünglichen Datei). Allerdings ist diese für mich keine Lösung, weil ich das Tool brauche, um relative URL-Referenzen in den proxied Dokumenten zu schreiben. Ich lese die documentation page, aber es beschreibt keine Funktionen, die zweifellos mein Problem verursacht.

Liste der mod_proxy_html Richtlinien der documentation die ich denke, nicht relevant sind, einige getestet: ProxyHTMLBufSize, ProxyHTMLCharsetOut, ProxyHTMLDocType, ProxyHTMLEnable, ProxyHTMLEvents, ProxyHTMLExtended (default off), ProxyHTMLFixups (aus Vorschlag vorgeschlagen), ProxyHTMLInterp, ProxyHTMLLinks, ProxyHTMLMeta (Standard aus), ProxyHTMLStripComments, ProxyHTMLURLMap.

+0

ich jetzt gemacht habe meinen Beitrag klarer und besser so formatiert, dass es hoffentlich nützlicher und einfacher zu denken. Ich habe im Moment keinen Zugang zu den genannten Servern, aber das Problem sollte reproduzierbar sein. – Edward

Antwort

0

Sie verwenden mod_proxy_html

Dieser Mod wird versuchen, HTML-Ressourcen durch, abhängig von den Richtlinien proxied zu beeinflussen. Mein Rat wäre, die ProxyHTML-Direktiven zu entfernen und zu sehen, was zurückkommt. Wenn es nicht betroffen ist, dann wissen Sie, was es mit mod_proxy_html zu tun hat.

Dann sind diese Richtlinie unter dem

ProxyHTMLEnable bei Zugabe
ProxyHTMLFixups off 
+0

Wie ich vermutete, verursacht * mod_proxy_html * mein Problem (das Ausschalten hat das Problem gelöst). Dies ist jedoch keine Lösung für mich, da ich die relativen URL-Referenzen in den Proxy-Dokumenten neu schreiben muss. Auch das Ausprobieren von 'ProxyHTMLFixups off' hat nicht funktioniert (siehe [Dokumentation] (http://httpd.apache.org/docs/2.4/mod/mod_proxy_html.html#ProxyHTMLFixups), ich verstehe nicht, warum es so wäre hat den Fehler trotzdem verursacht). Betrachtet man die ganze [Dokumentation] (http://httpd.apache.org/docs/2.4/mod/mod_proxy_html.html), weiß ich nicht, was mein Problem verursacht haben könnte. – Edward

+0

Ich habe meinen Beitrag jetzt klarer und besser formatiert, damit er hoffentlich nützlicher und einfacher zu denken ist. Sie können mehr Ideen zur Verfügung stellen, wenn Sie welche haben. Ich habe im Moment keinen Zugang zu den genannten Servern, aber das Problem sollte reproduzierbar sein. – Edward