Keine Bilder bei ProxyPass

Alles, was den Apache betrifft, kann hier besprochen werden.

Keine Bilder bei ProxyPass

Postby kaleidoskop » 06. May 2016 18:38

Hantiere schon den ganzen Tag herum mit dem Problem, dass beim Forwarding keine Bilder angezeigt werden.
Habe in der Httpd.conf den Eintrag:

<VirtualHost *:8080>
ServerName meinserver
ProxyPass / http://192.168.2.101:10100/
ProxyPassReverse / http://192.168.2.101:10100/
</VirtualHost>

unter der IP 192.168.2.101 läuft mein html-server.
Die Seiten werden alle anständig zurückgegeben, ausser dass alle images *.gif etc nicht im browser erscheinen.
Ohne Proxy läuft alles supi.
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby Nobbie » 06. May 2016 20:21

kaleidoskop wrote:unter der IP 192.168.2.101 läuft mein html-server.
Die Seiten werden alle anständig zurückgegeben, ausser dass alle images *.gif etc nicht im browser erscheinen.
Ohne Proxy läuft alles supi.


Das verwundert doppelt, denn einfach so läuft der Server auf Port 80 statt auf 10100.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 07. May 2016 06:35

Nobbie wrote:
kaleidoskop wrote:unter der IP 192.168.2.101 läuft mein html-server.
Die Seiten werden alle anständig zurückgegeben, ausser dass alle images *.gif etc nicht im browser erscheinen.
Ohne Proxy läuft alles supi.


Das verwundert doppelt, denn einfach so läuft der Server auf Port 80 statt auf 10100.


Habe vergessen mitzuteilen, dass natürlich der apache auf port 8080 "horcht" -> Listen 8080
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 07. May 2016 06:48

Ja es ist wirklich verwunderlich.
Apache und Html-Server sind auf dem selben PC installiert.
Der Request vom Browser wird über Port 8080 sauber an den Html-Server auf Port 10100 durchgereicht und dieser erhält auch die Anforderung der benötigten images per GET-Request. Der Html-Server sendet diese auch zurück! ... soweit kann ich es debuggen. Leider kommt im Browser nichts an.

Folgende Module sind bzgl. der apache Standardinstallation aktiviert:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so


Weiss niemand einen Ansatz, wie, warum, weshalb...?
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 07. May 2016 09:28

Nachtrag!
Und dazu noch der apache Error Log auszugsweise:

[Sat May 07 10:17:39.102675 2016] [proxy_http:error] [pid 6512:tid 1844] (22)Invalid argument: [client fe80::8471:ad8d:a988:f1bc:64438] AH01102: error reading status line from remote server 192.168.2.101:10100, referer: http://hp-rmk:8080/GetConfig
[Sat May 07 10:17:39.102675 2016] [proxy:error] [pid 6512:tid 1844] [client fe80::8471:ad8d:a988:f1bc:64438] AH00898: Error reading from remote server returned by /pic.gif, referer: http://hp-rmk:8080/GetConfig


Warum "error reading status line..." erscheint ist mir ein Rätsel. Der Response vom Server ist immer HTTP/1.0 200 OK
Der Fehler betrifft übrigens alle html-Seiten!

Niemand eine Idee? Ansonsten ist der Proxy völlig wertlos... :oops:
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby Nobbie » 07. May 2016 10:29

Du hast uns immer noch nicht erklärt, was das für ein Server ist, der auf 192.168.2.101 läuft und auf Port 10100 lauscht. Dieser Server ist das Problem, wie Du im Log erkennst, gibt der ungültige Werte zurück. Ohne diese Auskunft kann Dir niemand helfen.

Was heißt denn "unter der IP 192.168.2.101 läuft mein html-server."? Und wieso lauscht der auf Port 10100? Und auf welcher IP läuft der Server, dessen Konfiguration uns Du hier zeigst (der mit dem VirtualHost "meinserver"?)? Letzterer ist wohl der Server auf Port 8080, ein Apache. Aber was ist "mein html-server"?
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 09. May 2016 11:53

Ok. Nun läuft es.
Problem lag im Image Response des Servers.

Habe aber eine weitere Frage z.B. für folgende Konfiguration:

1. (Server 1) Html-Server auf 127.0.0.1:10100
2. (Server 2) Streaming-Server auf 127.0.0.1:10101
3. Apache Proxy unter *:8080 forwarded auf Apache Server unter 127.0.0.1:8081

Der Server (2) streamt video in die Html-Seiten von Server (1) per Html-Tag "src="streamserver.ip"...

Mein erster Ansatz war, daß in dem folder "/server1" und "/server2" je ein php-Skript liegt, welches ein forwarding zu den entsprechenden Servern (1) bzw. (2) realisiert. Leider erscheint im Browser dann jeweils die lokale Adresse 127.xxxx mit Port-Nummer was ein Remote-Zugriff nicht zulässt.

Ziel wäre:
Eingabe der Browser-Adresse:
- "http://computername:8080/server1" -> leitet über php-Skript im folder "/server1" an Server (1) weiter
- "http://computername:8080/server2" -> leitet über php-Skript im folder "/server2" an Server (2) weiter

D.h. ich möchte nur mit folder-Namen im Browser in der url arbeiten. Ist es evt. möglich über foldernamen direkt an bestimmte lokale (ip:port)-Adressen weiterzuleiten.
Ich habe an <VirtualHost *:8080/server1> und <VirtualHost *:8080/server2> gedacht. Leider klappt das sooooo nicht. :cry:
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby Nobbie » 09. May 2016 12:15

kaleidoskop wrote:Ich habe an <VirtualHost *:8080/server1> und <VirtualHost *:8080/server2> gedacht. Leider klappt das sooooo nicht. :cry:


Das ist ja auch totaler Quatsch. Da kann keine URL stehen, sondern nur IPs und Ports.

Der Pfad /server1 und /server2 muss in die ProxyPass Anweisung (und in die ProxyPassReverse Anweisung):

Code: Select all
</VirtualHost *:8080>
ServerName computername

ProxyPass /server1/ http://127.0.0.1:10100/
ProxyPassReverse /server1/ http://127.0.0.1:10100/

ProxyPass /server2/ http://127.0.0.1:10101/
ProxyPassReverse /server2/ http://127.0.0.1:10101/
...


Beachte aber, dass dadurch quasi das Verzeichnis /server1/ auf das Root Verzeichnis / gemapped wird, das ist machbar, aber da kann (je nachdem, wie dahinter liegende Anwendung programmiert ist) ziemlich viel passieren, was ggf. abgefangen werden muss. Vorher war / auf / gemapped, das ist aus meiner Sicht das einfachste und sicherste Verfahren. Wenn ich Du wäre, würde ich das auch beibehalten und entsprechend verschiedene ServerName im VirtualHost benutzen (also beispielsweise server1.computername und server2.computername), aber dort grundsätzlich / auf / mappen. Wenn Du wie hier den Ordner /server1 resp auch /server2 auf / mappst, solltest Du sehr aufmerksam dieses Tutorial lesen, da ist alles abgehandelt, was im Betrieb so Probleme bereiten kann (d.h. nicht, dass das auch alles passiert, das hängt eben davon ab, was da vom Remote Proxy angeliefert wird):

http://www.apachetutor.org/admin/reverseproxies

Was mir insgesamt nicht einleuchtet, wozu überhaupt diese ganzen Reverse Proxys?? Die ganzen Dienste laufen doch alle auf demselben Server, alle mit der gleichen IP nur mit verschiedenen Ports. Die kann man doch direkt addressieren, wieso der Umweg via Reverse Proxy??
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 09. May 2016 12:28

Thank's. Werde mal diese Schreibweise ausprobieren...

Warum das Ganze? Ja, die Frage ist wirklich berechtigt!
Also in den Html-Seiten wird auf verschiedene Server mit jeweils unterschiedlichem Port verwiesen, also z.B. "<img src="serverlein_xxx" ...>".
Beim Umkonfigurieren des Users der Servernamen und/oder Ip's müssen fortlaufend die Html-Tags ersetzt werden. Das ist bisher so der Fall.
Es wäre aber besser die Tags mit einer uri wie "server2" immer fix zu lassen, d.h. keine Änderung nötig wenn sich Ip oder Computername ändert.
Proxy: Es soll eigentlich auf dem lokalen Rechner auch kein Proxy laufen, verringert nur die Performance. Aber was passiert wenn ein externer Proxy davor sitzt?
Das ist es eigentlich was ich unbedingt prüfen wollte. Dann müssen die Zugriffe der Html-Tags auch hinter einem Proxy funktionieren. Besser wäre die Simulation des Proxy über einen extenen PC --- leider keiner mehr da.
Trotzdem erstmal Danke schön!
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby Nobbie » 09. May 2016 13:03

Was Du da testest, ist aber kein Proxy, sondern ein Reverse Proxy. Das ist nicht annähernd das gleiche.

kaleidoskop wrote:Also in den Html-Seiten wird auf verschiedene Server mit jeweils unterschiedlichem Port verwiesen, also z.B. "<img src="serverlein_xxx" ...>".
Beim Umkonfigurieren des Users der Servernamen und/oder Ip's müssen fortlaufend die Html-Tags ersetzt werden. Das ist bisher so der Fall.


Das könnte man ja deutlich einfacher via PHP regeln statt mit statischem HTML.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 09. May 2016 14:14

Erstmal: Klappt alles vorzüglich!

Nobbie wrote:Was Du da testest, ist aber kein Proxy, sondern ein Reverse Proxy.

Was meinst Du denn mit kein Proxy?
Kläre mich bitte auf.
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby Nobbie » 09. May 2016 14:40

kaleidoskop wrote:Was meinst Du denn mit kein Proxy?


Das ist kein Proxy. Ein Proxy wird im Browser angegeben und der Browser steuert dann grundsätzlich diesen Proxy an. Der Proxy seinerseits besorgt sämtliche Seiten im Internet und liefert sie an den Browser zurück. Man kann Apache in der Tat auch als Proxy einrichten.

Das ist aber nicht das, was Du hier machst. Du hast einen "Reverse Proxy" eingerichtet, der unterscheidet sich einmal grundsätzlich von einem normalen Proxy dadurch, dass genau NICHT ein Proxy im Browser angegeben wird. Stattdessen greift der Browser direkt auf den Apache Server zu. Erst die Definition des "Reverse Proxy" innerhalb von Apache ist dann verantwortlich dafür, dass Apache bestimmte Seiten nicht unmittelbar ausliefert, sondern seinerseits einen weiteren Server anfragt, typischerweise einen Server, den man außen nicht erreichen würde ohne die Hilfe des Reverse Proxy. Apache liefert anschließend die Inhalte dieses nachgeschalteten Servers unter der eigenen Adresse aus, die im LInk spezifiziert wurde. Das ist im Grunde ein Proxy "andersherum", deswegen heißt das Ding auch "Reverse Proxy". Aber es ist nicht das was geschieht, wenn man im Browser einen Proxy angibt. Genau genommen weiß der Browser der Browser beim Reverse Proxys überhaupts nichts davon, dass die Inhalte eigentlich von ganz anderen Servern kommen.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: Keine Bilder bei ProxyPass

Postby kaleidoskop » 09. May 2016 16:17

Jo genau! Eben anders herum...
kaleidoskop
 
Posts: 8
Joined: 06. May 2016 18:31
XAMPP version: 3.2.2
Operating System: windows 10

Re: Keine Bilder bei ProxyPass

Postby Altrea » 09. May 2016 19:19

Dieses Bild hier sagt eigentlich alles:
Image

oder dieses hier, auch sehr gelungen:
Image
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8290
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests