Umleitung mit mod_proxy

Dieses Thema im Forum "Web- & File-Services" wurde erstellt von Nemesis, 16.12.2009.

  1. #1 Nemesis, 16.12.2009
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    hi,
    mein apache stellt eine seite im internet bereit, nun möchte ich gerne, dass beim aufruf einer unterseite der apache als eine art proxy fungiert und von einem weiteren server im selben netzwerk die seite ausliefert.

    http://192.168.0.211 -> Apache liefert eigene Seite aus
    http://192.168.0.211/newone -> Apache fungiert als Proxy und liefert die Seite, die er von einer anderen Adresse holt, aus.

    das sollte eigentlich mit mod_proxy funktionieren, aber ich komme immer bei http://192.168.0.211/http/start raus, und dort sagt er, dass die files nicht existieren.

    was läuft da falsch ?

    danke !
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. T-One

    T-One Routinier

    Dabei seit:
    14.10.2008
    Beiträge:
    478
    Zustimmungen:
    3
    Ort:
    Österreich
    Zeig mal deine Configs die du diesbezüglich angelegt hast.
     
  4. #3 Nemesis, 16.12.2009
    Zuletzt bearbeitet: 16.12.2009
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    das ist die proxy.conf
    Code:
    <IfModule mod_proxy.c>
            #turning ProxyRequests on and allowing proxying from all may allow
            #spammers to use your proxy to send email.
    
            ProxyRequests Off
    
     #       <Proxy *>
     #              AddDefaultCharset off
     #              Order allow,deny
     #              Allow from all
     #              Allow from .example.com
     #       </Proxy>
    
            # Enable/disable the handling of HTTP/1.1 "Via:" headers.
            # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
            # Set to one of: Off | On | Full | Block
    
            ProxyVia On
    
            ProxyPass /ONE http://192.168.0.X
            ProxyPassReverse /ONE http://192.168.0.X
    
            ProxyPass /TWO http://192.168.0.Y
            ProxyPassReverse /TWO http://192.168.0.Y
    </IfModule>
    
    bei der ersten funktioniert es auch, nur bei der 2ten nicht. Ich denke es müssten alle Anfragen an Adressen die unterhalb von http://192.168.0.Y/ liegen nicht an /TWO/ gestellt werden sondern auch an http://192.168.0.Y/ und das ergebnis dann ausgeliefert.
    also in etwa wie wenn ich für jede adresse noch einen eintrag machen würde ala:
    Code:
           ProxyPass /TWO/http/ http://192.168.0.Y/http
            ProxyPassReverse /TWO/http/ http://192.168.0.Y/http
    
           ProxyPass /TWO/http/start http://192.168.0.Y/http/start
            ProxyPassReverse /TWO/http/start http://192.168.0.Y/http/start
    aber lässt sich das nicht über eine regel automatisieren ?

    hier nochmal das prinzip:

    Code:
                                      +-------+
                                      |ServerA|
                                      +-------+
                                     /
    +----------+    +---------------+
    | Internet +----+ Reverse Proxy | 
    +----------+    +---------------+
                                     \
                                      +-------+
                                      |ServerB|
                                      +-------+
     
  5. T-One

    T-One Routinier

    Dabei seit:
    14.10.2008
    Beiträge:
    478
    Zustimmungen:
    3
    Ort:
    Österreich
    Hi,

    verstehe ich dich da richtig, auch alle Anfragen die an das www-root (/) gehen werden nach /TWO geleitet?
     
  6. #5 Nemesis, 17.12.2009
    Zuletzt bearbeitet: 17.12.2009
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    nein, nicht an das root, anfragen die an http://<zensiert>/ONE gehen werden umgeleitet. wobei umgeleitet auch nicht der richtige ausdruck ist, da der apache hier als reverse-proxy dienen soll. der apache holt sich dann die auszuliefernde seite von dem gerät das gewünscht ist, in diesem fall wäre es ONE.
    Ich möchte eben Weboberflächen verschiedener Geräte über eine Adresse für die Remoteverwaltung zur Verfügung stellen.

    ich denke es liegt an absoluten pfadangaben ... im apache-log stehen einträge dass er im root nach verschiedenen cgi-sscripten sucht.

    hier sucht er:
    http://<zensiert>/cgi-scripts/

    und hier liegen die scripte:
    http://<zensiert>/ONE/cgi-scripts/

    hm, eventuell lässt sich da was mit mod-rewrite umbiegen, nur steige ich da nicht ganz hinter die syntax ... is vielleicht auch schon zu spät am abend ;)

    mfg
     
  7. foexle

    foexle Kaiser

    Dabei seit:
    02.05.2007
    Beiträge:
    1.104
    Zustimmungen:
    0
    Ort:
    Saarbrücken
    an deiner stelle würde ihc mir mal "location", "location match" ansehen.
    Allerdings bin ich mir gerade nicht sicher ob man in den Directiven proxy_pass verwenden kann... mussu ausprobieren. Falls das nicht klappen sollte, musst du das wie du schon erwähnt hast mit mod_rewrite arbeiten

    aber ich verstehe sowiso nicht den sinn hinter deiner architektur.
    was du da aufgemalt hast, ist ein klassischer mod_proxy load balancer ....

    nunja :>
     
  8. #7 Nemesis, 18.12.2009
    Zuletzt bearbeitet: 18.12.2009
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    die location-tags sind nur dazu da um die sache etwas übersichtlicher zu gestalten.

    anstatt
    Code:
    ProxyPass /ONE [url]http://192.168.0.X[/url]
    ProxyPassReverse /ONE [url]http://192.168.0.X[/url]
    wäre das dann
    Code:
    <location /ONE/>
    ProxyPass [url]http://192.168.0.X[/url]
    ProxyPassReverse [url]http://192.168.0.X[/url]
    </location>
    zum thema load-balancer ... wenn das 2x der gleiche server wäre, dann würde das ja passen, denn ein load-balancer verteilt den traffic gleichmäßig auf verschiedene Server.
    Nicht das was ich suche.

    ::EDIT::

    so, ich bin einen Schritt weiter gekommen ...
    Code:
    ProxyPass /ONE http://192.168.0.X/
    ProxyHTMLURLMap / /ONE/
    ProxyHTMLExtended On
    RequestHeader unset Accept-Encoding
    macht fast das was ich gerne hätte, es setzt / nach /ONE/ ... aber es setzt auch vor jeden unterordner ein /ONE, sprich:
    wenn http://<zensiert>/ONE eingegeben wird, dann wäre http://<zensiert>/ONE/http/index.html richtig, aber http://<zensiert>/ONE/http/ONE/index.html kommt dann dabei raus.
     
  9. #8 uzumakinaruto, 18.12.2009
    uzumakinaruto

    uzumakinaruto Tripel-As

    Dabei seit:
    23.05.2008
    Beiträge:
    246
    Zustimmungen:
    0
    Ort:
    Gifhorn
    Code:
    <VirtualHost *:80>
            ServerName www.example.de # servera
            ProxyRequests On
            ProxyVia On
    
            <Proxy *>
                    Order deny,allow
                    Allow from all
            </Proxy>
    
            ProxyPass /seite2 http://serverb.example.de
            ProxyPassReverse /seite2 http://serverb.example.de
    </VirtualHost>
    der aufruf von www.example.de/seite2 sollte die seite von serverb öffnen

    bei mir klappt das genauso

    linux apache ist im netz erreichbar und liefert über eine adresse ein webinterface von einem lokalen gerät aus.
     
  10. #9 Nemesis, 18.12.2009
    Zuletzt bearbeitet: 20.12.2009
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    bei mir klappt das auch, nur die links in den html-files werden nicht richtig aufgelöst, so sucht er nach machen bildern im root des apachen (unter /) und nicht unter dem verzeichnis in dem sie eigentlich sind (/ONE/)

    achja, ich würde das Proxyrequest deaktivieren ;)

    ::EDIT::

    Hier steht beschrieben, dass das mit der Directive
    Code:
    ProxyHTMLURLMap /           /ONE/
    eigentlich funktionieren sollte ... eigentlich ... aber er läd das Modul anscheinen nicht richtig, im log taucht flgendes auf:
    Code:
    Invalid command 'ProxyHTMLEnable', perhaps misspelled or defined by a module not included in the server configuration
    obwohl:
    Code:
    Which module(s) do you want to enable (wildcards ok)?
    proxy_html           
    Module proxy_html already enabled
     
  11. #10 uzumakinaruto, 21.12.2009
    Zuletzt bearbeitet: 21.12.2009
    uzumakinaruto

    uzumakinaruto Tripel-As

    Dabei seit:
    23.05.2008
    Beiträge:
    246
    Zustimmungen:
    0
    Ort:
    Gifhorn
    danke für den tipp :D

    vllt liegt es an der programmierung der webseite?
    oder in der vhost config?
    document root usw.

    ich werde bei mir mal eine normale php webseite umleiten lassen, mal gucken ob die pfade dann stimmen.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    so ... ich habe mich ein wenig mal mit dem thema beschäftigt :D

    Code:
    ProxyHTMLURLMap http://seite2.example.de /subfolder
    bei mir werden jetzt alle links schön umgeschrieben, die css dateien werden gefunden, usw :D

    ABER:
    dafür musste ich nicht nur proxy_html aktivieren (war zwar schon, aber egal), nein ich musste auch noch was neues installieren. leider nicht aus den repos.

    apache-(prefork|worker)-dev eines von beiden, je nachdem was installiert ist

    mod_xml2enc
    mod_xml2enc.h
    mod_xml2enc.c

    beide dateien in /usr/local/src/mod_xml2enc/ ablegen

    die pfade stammen aus debian lenny
    Code:
    cd /usr/sbin/ #der ort an dem die apach2/httpd datei liegt
    apxs2 -aic -I/usr/include/libxml2/ /usr/local/src/mod_xml2enc/mod_xml2enc.c
    unter umständen muss noch mod_proxy.html in /usr/local/src/ entpackt werden (ordner wird erstellt)

    /etc/apache/mods_available/xml2enc.load
    Code:
    LoadFile /usr/lib/libxml2.so
    LoadModule xml2enc_module /usr/lib/apache2/modules/mod_xml2enc.so
    und dann einfach neustarten :D

    Quelle:
    http://apache.webthing.com/mod_proxy_html/
    http://www.outsidethe.net/2009/11/17/building-and-installing-mod_proxy_html-and-mod_xml2enc
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. #11 Nemesis, 22.12.2009
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    es ging dann doch ohne das rumgefrikkel:
    Code:
    ProxyPass /http/ http://<zensiert>/http/
    ProxyPassReverse /http/ http://<zensiert>/http/
    ProxyHTMLURLMap http://<zensiert>/http /http/
    <Location /http/>
                    ProxyPassReverse /
       SetOutputFilter  proxy-html
       ProxyHTMLURLMap / /http/
       ProxyHTMLURLMap  /http/ /http/
            RequestHeader    unset  Accept-Encoding
    </Location>
     
  14. #12 uzumakinaruto, 24.12.2009
    uzumakinaruto

    uzumakinaruto Tripel-As

    Dabei seit:
    23.05.2008
    Beiträge:
    246
    Zustimmungen:
    0
    Ort:
    Gifhorn
    dann war bei dir das schon "eingebaut" .. bei mir unter lenny nicht. hat was mit der proxy_html version zu tun
     
Thema:

Umleitung mit mod_proxy

Die Seite wird geladen...

Umleitung mit mod_proxy - Ähnliche Themen

  1. KDE 4.9 Soundumleitung

    KDE 4.9 Soundumleitung: Hallo! Ich suche eine Möglichkeit wie ich unter KDE die Soundausgabe per Klick entweder auf den Kopfhörer oder auf intern umstellen kann. Kmix...
  2. pf: interne Anfragen-Umleitung

    pf: interne Anfragen-Umleitung: Hallo, ich verwalte ein kleines Netzwerk aus etwa 10-20 Rechnern. Es gibt einen Server (Debian stable), vor dem noch eine OpenBSD 4.9 Firewall...
  3. printf Formatierung: echo schreibt bei Ausgabeumleitung auf File nichts. Wieso?

    printf Formatierung: echo schreibt bei Ausgabeumleitung auf File nichts. Wieso?: #!/bin/sh ZAHL="372" FARBE="gelb" printf "%s%06d%s" "Bearbeitungsnummer 888" $ZAHL ", Farbe: $FARBE" echo printf "%s%06d%s" "Bearbeitungsnummer...
  4. Umleitung mit mod_rewrite

    Umleitung mit mod_rewrite: Hi, ich möchte an einem apachen ein redirect setzen, so dass er alles was über http ankommt, auf https umlenkt. in etwa wie: RedirectMatch...
  5. [GELÖST] Ausgabeumleitung erweitert - alles in eine Zeile bringen

    [GELÖST] Ausgabeumleitung erweitert - alles in eine Zeile bringen: Hallo Gemeinde, ich habe ein recht triviales SetUp, eine Ausgabeumleitung in Bsp. test.log echo $VAR1 $VAR2.. >test.log Nun kommen direkt...