Hi,
ich mochte einen Proxy in einen LAN einrichten der Anfragen zu Webseiten zu unterschiedlichen Server weiterleitet. Dies soll fuer Anfragen aus dem Internet funktionieren. Zum Beispiel
- Anfrage aus dem Internet zu der Webseite http://example.domain.net
1b) Diese Anfrage kommt an der Firewall/Gateway unseres LAN`s an - Die Firewall/Gateway leitet die Anfrage uber NAT (oder PAT) an Port 80 zu dem Proxy weiter
- Der Proxy leitet die Anfrage an den Server weiter, der die Webseite tatsaechlich bereitstellt (Der Proxy leitet anhand der URL http://example.domain.net weiter - eine andere URL z.b. http://example2.domain.net wird an einen anderen Server weitergeleitet)
Ich habe den Proxy mit Apache und mod_proxy aufgesetzt und intern kann ich mit der Webseite ueber den Proxy auch wunderbar kommunizieren. Nur wenn die Anfrage von aussen ueber NAT weitergeleitet wird geht das ganze nicht mehr.
Folgend Szenario funktioniert also schon:
LAN:
PROXY ....................................WEBSERVER
192.168.1.100...........------>...........192.168.1.101
test.domain.com ..........................local.test.domain.com
|
|
|
CLIENT
ruft test.domain.com auf
und kommuniziert mit
local.test.domain.com
Apache Config for PROXY:
<VirtualHost test.domain.com:80>
ProxyPass / http://local.test.domain.com/
ProxyPassReverse / http://local.test.domain.com/
</VirtualHost>
Apache Config for WEBSERVER
<VirtualHost *:80>
ServerName test.domain.com
ServerAlias local.test.domain.com
DirectoryIndex index.html index.php index.htm
DocumentRoot /opt/test-example
</VirtualHost>
Ich bin mir sicher dass die Config in Apache ok ist, weil es funktioniert ja lokal. Ich bin mir also sicher dass alle noetigen module geladen sind. Es funktioniert aber nicht aus dem Ineternet wenn zusaetzlich das Forwarding von der Firewall ins Spiel kommt. Meine momentane Vermutung ist dass die Anwort der WEBSERVER und/oder des PROXY nicht an die Firewall zurueckgegeben wird. Sowohl der WEBSERVER als auch PROXY haben also default Gateway die Firewall. Ich sehe in den Logs von Apache aber auch keine Anfragen wenn ich vom Internet versuche die Seite aufzurufen. Es kommt auch keine Fehlermeldung im Browser beim Aufruf der Seite - sondern es laeuft auf einen Timeout.
Das Szenario das NICHT funkioniert - mit der gleichen Apache Config wie oben - ist folgendes:
CLIENT
ruft test.domain.com (212.212.212.100) auf
und laeuft auf timeout :(
|
|
|
FIREWALL
ext 212.212.212.100
int 192.168.1.1
NAT 212.212.212.100:80 --> 192.168.1.100:80
|
|
|
PROXY ....................................WEBSERVER
192.168.1.100...........------>...........192.168.1.101
test.domain.com ..........................local.test.domain.com
Default Gateway 192.168.1.1...............Default Gateway 192.168.1.1
Ich habe bereits stunden mit google verbracht und habe bisher leider keine heisse spur. Ich waere fuer jeglichen hinweis ueberaus dankbar :)
Tobias