Apache2 mit Weiterleitung (Proxy, Redirect)

Apache, Lighttpd, nginx, Cherokee
User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Apache2 mit Weiterleitung (Proxy, Redirect)

Post by TDS » 2009-05-18 20:14

Hallo,
ich habe eine DynDNS Adresse und im Intranet ein Netzwerk mit Webserver und Co.
Jetzt möchte ich das jemand der von der DynDNS Adresse (z.B. addr.ath.cx) den Content meiner internen Seite (intranet.local) sehen kann. Ich weiß das es mit mod_proxy und URL Rewrite gehen kann. Nur wie geht es genau?

  • addr.ath.cx/index.php soll intranet.local/index.php anzeigen
  • es soll auch intern die DynDNS Adresse auf intranet.local geändert werden damit das Script funktioniert, andersrum genauso (ReverseProxy)

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by Roger Wilco » 2009-05-18 20:23

Hast du http://httpd.apache.org/docs/2.2/mod/mod_proxy.html gelesen und verstanden?
Was ist dir nach der Lektüre der verlinkten Dokumentation noch konkret unklar?

User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by TDS » 2009-05-18 20:55

Wenn ich ProxyPass und Co. einrichte, dann hängt entweder der Apache oder ich bekommen Fehler 500.

Meine proxy.conf sieht so aus:

Code: Select all

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://www.intranet.de/
ProxyPassReverse / http://www.intranet.de/

Ich weiß nicht wie ich alle von einer Domain auf die andere übertragen kann :-(
Muss man ein Unterverzeichnis angeben, also addr-ath-cx/foo? Das ist nicht das was ich möchte.
Einige haben ja auch abc.de und xyz.de auf domain.de. Das möchte ich.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by Roger Wilco » 2009-05-18 21:00

Generell gefragt, wieso richtest du an deinem Router nicht einfach Portforwarding zu dem internen Webserver ein und erstellst auf diesem einfach einen virtuellen Host für die (DynDNS-) Domain? Soweit ich das verstanden habe, hast du ja keine 2 Webserver herumstehen, oder?

User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by TDS » 2009-05-18 21:36

Es geht darum das ich im Intranet eine Domain namens intranet.de habe. Auch die AD-Domäne ist intranet.de. Windows verwaltet das AD, Linux die Web Services und Co.
Die interne Struktur soll nicht umgestellt werden da dies zu aufwändig wäre. Aus diesem Grund die Umschreibung entweder via Proxy oder Rewrite.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by Roger Wilco » 2009-05-18 23:19

TDS wrote:Es geht darum das ich im Intranet eine Domain namens intranet.de habe. Auch die AD-Domäne ist intranet.de. Windows verwaltet das AD, Linux die Web Services und Co.
Die interne Struktur soll nicht umgestellt werden da dies zu aufwändig wäre.

Mir ist immer noch nicht klar, weshalb das ein simples Portforwarding auf den Webserver und das Einrichten eines Aliases auf diesem Webserver verhindern sollte.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by Joe User » 2009-05-19 00:21

Roger Wilco wrote:
TDS wrote:Es geht darum das ich im Intranet eine Domain namens intranet.de habe. Auch die AD-Domäne ist intranet.de. Windows verwaltet das AD, Linux die Web Services und Co.
Die interne Struktur soll nicht umgestellt werden da dies zu aufwändig wäre.

Mir ist immer noch nicht klar, weshalb das ein simples Portforwarding auf den Webserver und das Einrichten eines Aliases auf diesem Webserver verhindern sollte.

Weil intranet.de kein lokaler FQDN ist und daher theoretisch von aussen offen wäre...


BTW: Das Nutzen öffentlicher TLDs im LAN ist pöse, dafür gibt es .local
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by TDS » 2009-05-19 07:56

Ich will ja auch keinen exposed Host. Ich will das wenn jemand auf addr.ath.cx klickt die Intranet-Seite sehen kann. Weiterleitung von Port 80 funktioniert, jedoch ist in Apache ein Eintrag auf addr.ath.cx - der soll auf intranet.de weiter verweisen. Es wird eh eine htpasswd davor geschalten und seperat Logindaten abgefragt. Und das ist nicht pöse ^^

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by Roger Wilco » 2009-05-19 14:50

Werden die Seiten für dein addr.ath.cx und intranet.de vom gleichen Webserver ausgeliefert? Das würde deine in einem vorigen Beitrag beschriebene Endlosschleife erklären.
Wenn dem so ist, sehe ich nach wie vor keinerlei Notwendigkeit das über mod_proxy zu lösen. Du kannst einfach ein Alias für den VirtualHost von intranet.de einrichten und fertig.
Zu dem beschriebenen Error 500 müsstest du eine Aussage im error_log des Webservers finden.

TDS wrote:Ich will ja auch keinen exposed Host. Ich will das wenn jemand auf addr.ath.cx klickt die Intranet-Seite sehen kann.

Und wie sieht dein Netzwerk-Setup dazu konkret aus?

User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by TDS » 2009-05-19 17:13

So, soweit funktioniert alles. addr.ath.cx und intranet.de liegen auf dem selben Server. Alle werden per rewrite mit www versehen. Von außen werden mir die Seiten von intranet.de angezeigt, obowohl addr.ath.cx noch in der Adresszeile steht.

Code: Select all

ProxyRequests On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://www.intranet.de/
ProxyPassReverse / http://www.intranet.de/

<Location />
AddOutputFilterByType SUBSTITUTE text/html
AddOutputFilterByType SUBSTITUTE text/javascript
AddOutputFilterByType SUBSTITUTE text/css
AddOutputFilterByType SUBSTITUTE text/xml
Substitute s|http://www.intranet.de|http://www.addr.ath.cx|i
</Location>

Nur wird der Inhalt nicht von substitute geparsed, somit verlaufen die Anfragen an intranet.de im Sande da ja addr.ath.cx dafür stehen sollte.
mod_substitute ist enabled und Apache neu gestartet. Eine Testseite mit Mime text/html (test.php) wurde erstellt mit beiden Domainnamen als Text zum Test. Jedoch scheint sich substitute nicht darum zu kümmern.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by Joe User » 2009-05-19 19:27

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

User avatar
TDS
Posts: 71
Joined: 2004-03-25 07:53
Location: Hannover

Re: Apache2 mit Weiterleitung (Proxy, Redirect)

Post by TDS » 2009-05-19 21:02

Joe User wrote:http://www.heise.de/netze/artikel/134488 könnte helfen...

Den habe ich bereits mehrfach gelesen. Dadurch bin ich ja auf diese Idee gekommen :-D

Aber ich hab's geschafft:
Virtualhost:

Code: Select all


        RequestHeader unset Accept-Encoding

        ProxyRequests Off
        ProxyPass / http://www.intranet.de/
        ProxyPassReverse / http://www.intranet.de/

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

        <Location />
                AddOutputFilterByType SUBSTITUTE text/html
                AddOutputFilterByType SUBSTITUTE text/xml
                AddOutputFilterByType SUBSTITUTE text/javascript
                Substitute "s|http://www.intranet.de|http://www.addr.ath.cx|inq"
        </Location>

Und man muss in Apache folgende Module aktivieren (a2enmod):
headers, proxy (beinhaltet proxy_http), rewrite

Danach Apache neu starten und es klappt.

PS: Bei mir fehlter das Modul headers. Es sorgt mit

Code: Select all

RequestHeader unset Accept-Encoding
dafür das die Daten nicht mit gzip komprimiert werden. Wenn es so wäre dann könnte auch nicht ersetzt werden, wird ja nichts gefunden... War bei mir der Fall.