Apache 2 interpretiert html nicht
Mister_Tobe
- webserver
0 Der Martin0 Mister_Tobe0 Der Martin0 Mister_Tobe2 MudGuard
Hey Leute,
ich habe eine Rails Anwendung welche mittels Mongrel ausgeführt wird. Vor Mongrel (Mongrel Cluster) habe ich einen Apache 2 mit einem Load Balancer geschaltet und die httpd.conf entsprechend angepasst, so dass (in meinem Fall) mehrere Anfragen auf 4 Prozesse verteilt werden. Es funktioniert alles super außer, dass die Seiten nicht vom Apache interpretiert werden. Der HTML Code wird lediglich als Text ausgegeben.
Hier ein Ausschnitt meiner httpd.conf:
<Proxy balancer://giscluster>
# cluster members
BalancerMember http://127.0.0.1:4000
BalancerMember http://127.0.0.1:4001
BalancerMember http://127.0.0.1:4002
BalancerMember http://127.0.0.1:4003
</Proxy>
ExtendedStatus On
<Location /server-status>
SetHandler server-status
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
</Location>
<VirtualHost *:80>
ServerName gis
ProxyRequests Off
ProxyPass /balancer-manager !
ProxyPass /server-status !
ProxyPass / balancer://giscluster/
ProxyPassReverse / balancer://giscluster/
</VirtualHost>
Wäre toll, wenn Ihr mir helfen könntet!!
Grüße, Tobias
Hallo,
[...] Es funktioniert alles super außer, dass die Seiten nicht vom Apache interpretiert werden.
das werden sie nie. Apache liefert die Information nur an den Client (Browser) aus. Interpretieren tut der Browser.
Der HTML Code wird lediglich als Text ausgegeben.
Anders gesagt: Dein Browser zeigt den HTML-Quellcode an?
Dann liefert der Apache möglicherweise nicht den geeigneten Header. HTML-Ressourcen sollten mit dem Content-Type "text/html" ausgeliefert werden. Ich weiß allerdings nicht, wie das im Zusammenspiel mit der Proxy/Load-Balancer-Geschichte funktioniert. Da sind vermutlich die Server "dahinter" schon dafür zuständig, die richtigen HTTP-Header zu liefern.
Hier ein Ausschnitt meiner httpd.conf:
... der mit dem beschriebenen Phänomen gar nichts zu tun hat.
Eventuell liegt das eigentliche Problem schon in der Konfiguration der Server im Backend.
So long,
Martin
Hey,
vielen Dank für die schnelle Antwort.
Ich wundere mich eben, da wenn ich die einzelnen 4 Prozesse des Servers (welche am localhost auf Port 4000-4003 lauschen) direkt über die URL (z.B. http://localhost:4000) aufrufe, dann bekomme ich die Seite wunderbar angezeigt. Wenn diese aber über den Apache 2 vom Load Balancer aufgerufen werden, dann wird das HTML plain im Browser angezeigt.
Hat jemand vielleicht eine Idee was das Problem sein könnte?
Greetz, Tobi
Hallo,
Ich wundere mich eben, da wenn ich die einzelnen 4 Prozesse des Servers (welche am localhost auf Port 4000-4003 lauschen) direkt über die URL (z.B. http://localhost:4000) aufrufe, dann bekomme ich die Seite wunderbar angezeigt. Wenn diese aber über den Apache 2 vom Load Balancer aufgerufen werden, dann wird das HTML plain im Browser angezeigt.
und worin unterscheiden sich die Ressourcen dann genau? Welche Header werden im Fall 1. oder 2. gesendet? Ich vermute, wenn sobald man den genauen Unterschied kennt, tut man sich leichter, die Ursache zu finden.
Ciao,
Martin
Du hast recht, wenn ich die 4 Prozesse direkt anspreche, dann kommt der vollständige Header und die Seite wird korrekt angezeigt. Wenn ich allerdings über den Apache darauf zugreifen, dann sieht das wie folgt aus:
<html>
<head></head>
<body>
... (hier steht dann der header und der rest der eigentlichen Seite)
</body>
</html>
Komischerweise wird also um die eigentliche Seite ein
<html>
<head></head>
<body>
Eigentliche Seite
</body>
</html>
gepackt. Das macht mich doch etwas stutzig wie soetwas funktioniert ... :(
HELPPPP...
Grüße, Tobi
Hi,
Du hast recht, wenn ich die 4 Prozesse direkt anspreche, dann kommt der vollständige Header und die Seite wird korrekt angezeigt. Wenn ich allerdings über den Apache darauf zugreifen, dann sieht das wie folgt aus:
Und wie sehen jetzt die HTTP-Header aus?
HELPPPP...
Vielleicht solltest Du Deine Server von jemandem konfigurieren lassen, dem der Unterschied zwischen HTTP-Header, dem HTML-Element head und dem Kopf einer dargestellten HTML-Seite klar ist.
cu,
Andreas