ReverseProxy + Umleitung auf Unterverzeichnis?

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

Postby Wiedmann » 05. March 2008 12:46

Irritierender Weise ist da leider ist da kein Slash zwischen dem subfolder und dem Kram in Klammern.

In dem Fall kann dein ReverseProxy auch die URI nicht korrekt umschreiben, da "subfolder" ja nicht wirklich ein Verzeichnis ist und du expliziet den abschliessenden Slash angibst.

Als erstes würde ich mal probieren, deine Konfig ohne diesen Slash zu machen. Also überall "http://intern.de:8000/subfolder" statt "http://intern.de:8000/subfolder/"

BTW:
Was passiert denn, wenn du im Browser auf dem Server einfach ""http://intern.de:8000/" aufrufst?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 06. March 2008 09:40

Wenn ich den abschließenden Slahs weglasse, wird (wie beinahe erwartet)
diesmal nach der Authentifizierung die Fehlermeldung 404 angezeigt:
http://intern.de:8000/subfoldersubfolder/default.htm nicht gefunden.

Wenn ich einfach nur intern.de:8000 aufrufe, erscheint auch eine 404, da keine Seite hinterlegt ist, sondern zwingend über das Unterverzeichnis aufgerufen werden muss. (Keine Ahnung warum das so konfiguriert wurde, aber leider habe ich ja darauf keinen Einfluss)
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 06. March 2008 10:29

diesmal nach der Authentifizierung die Fehlermeldung 404 angezeigt:
http://intern.de:8000/subfoldersubfolder/default.htm nicht gefunden.

Also dann, wenn du im Browser auf senden (oder was auch immer) drückst, und der Browser die Daten wegschicken will?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 06. March 2008 10:46

wenn ich die Dialogbox für die Eingabe des Passworts mit korrekten Anmeldeinformationen gefüllt und auf OK geklickt habe.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 06. March 2008 12:45

Hm. Machen wir es mal anders:
Wenn ich die ReverseProxy-Direktiven unverändert belasse (also ohne die Angabe des Unterverzeichnisses),

Das wäre also dann etwa dieser Code:
Code: Select all
ProxyRequests Off
ProxyPass / http://intern.de:8000/
ProxyPassReverseCookieDomain intern.de extern.de
ProxyPassReverseCookiePath / /
ProxyHTMLURLMap http://intern.de:8000 /
<Location />
    ProxyPassReverse /
    SetOutputFilter proxy-html
    ProxyHTMLURLMap / /
    RequestHeader unset Accept-Encoding
</Location>


dann muss ich (der Anwender) einmalig hinter der URL das Verzeichnis mitangeben (also extern.de/subolder). Danach läuft alles sauber.

Da müssete es eigentlich langen, da oben noch dieses davorzusetzten:
Code: Select all
RedirectMatch ^/$ http://extern.de/subfolder


Sollte sich der ReverseProxy die Anfrage schon griefen, bevor die RedirectMatch-Directive zum Zuge kommt, könnte man den redirect und Proxy dann alternativ noch per mod_rewrite machen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 06. March 2008 13:25

Wiedmann wrote:Ein ReverseProxy wird nicht mit RedirectMatch konfiguriert.



Die Redirect-Direktive scheint keine Auswirkung zu haben, ob drin oder nichtz, das Resultat sieht immer gleich aus.

Meine soweit laufende Config (bis auf die Subfolder-Geschichte) sieht so aus (vielleicht hab ich irgendwo doch zuviel gewollt):

Code: Select all
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   ServerName www.extern.de
   
#      RedirectMatch ^/$ http://extern.de/subfolder

   DocumentRoot /var/www/host2
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /var/www/host2>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   </Directory>

   ErrorLog /var/log/apache2/error.log

   CustomLog /var/log/apache2/access.log combined
   ServerSignature On

   HostnameLookups Off
   ProxyPreserveHost Off
   ProxyRequests Off
#   ProxyRemote * http://www.intern.de/
   ProxyPass / http://www.intern.de:8000/
   ProxyPassReverse / http://www.intern.de:8000/

   ProxyPassReverseCookieDomain www.intern.de www.extern.de
   ProxyPassReverseCookiePath / /

   SetOutputFilter INFLATE;proxy-html;DEFLATE

   ProxyHTMLURLMap http://www.intern.de:8000/ http://www.extern.de/
#   ProxyHTMLExtended On
   <Proxy *>
      Order deny,allow
      Allow from all
   </Proxy>

   RequestHeader unset Accept-Encoding
   
#   ProxyHTMLLogVerbose On
   LogLevel Warn
</VirtualHost>
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 06. March 2008 14:13

Meine soweit laufende Config

Das ist also die, wo man einmalig das Subir selbst angeben muss?

So aus neugierde: Würde es denn mit meiem Code von oben auch so tun? (durch teilweises auslagen in den Location weren manche fehlerhafte header vom backend korrigiert).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 07. March 2008 08:05

Sorry, hat jetzt etwas länger gedauert.

Ich hab jetzt Deinen Code so genommen:

Code: Select all
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   ServerName www.extern.de
   
#      RedirectMatch ^/$ http://extern.de/subfolder

ProxyRequests Off
ProxyPass / http://intern.de:8000/
ProxyPassReverseCookieDomain intern.de extern.de
ProxyPassReverseCookiePath / /
ProxyHTMLURLMap http://intern.de:8000 /
<Location />
    ProxyPassReverse /
    SetOutputFilter proxy-html
    ProxyHTMLURLMap / /
    RequestHeader unset Accept-Encoding
</Location>
</VirtualHost>


Jetzt erhalte ich zwar auch das Anmelde-Dialogfenster vom Browser, aber meine Zugangsdaten werden offenbar nicht mehr akzeptiert. Mit meiner Config funktioniert der Zugriff.

Ich hab mir mal die Headers angeschaut und erhalte bloss die folgenden:
(Entspricht Aufruf der Seite inkl. SubDir, Eingabe korrekte Zugangsdaten, erneuter Pass-Dialog, Abbruch)

Code: Select all
GET /subfolder HTTP/1.1
Host: extern.de

HTTP/1.x 401 Unauthorized

GET /subfolder HTTP/1.1
Host: extern.de

HTTP/1.x 302 Moved temporarily

GET /subfolder/default.htm?sap-sessioncmd=open HTTP/1.1
Host: extern.de

HTTP/1.x 302 Moved temporarily

GET /subfolder(bD1lbiZjPTAwMSZkPW1pbg==)/default.htm?sap-sessioncmd=open HTTP/1.1

HTTP/1.x 401 Unauthorized
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 07. March 2008 12:41

Ich hab jetzt Deinen Code so genommen: ... Mit meiner Config funktioniert der Zugriff.

Dann bleiben wir mal grundsätzlich bei deiner Lösung.

Was passiert denn damit?
Code: Select all
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.extern.de

    DocumentRoot /var/www/host2
    <Directory /var/www/host2>
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

    RewriteEngine On
    RewriteRule ^/$ /subdir [R]
    RewriteRule ^/(+*)$ http://www.intern.de:8000/$1 [P]

    ProxyRequests Off
    ProxyPassReverse / http://www.intern.de:8000/
    ProxyPassReverseCookieDomain www.intern.de www.extern.de
    ProxyPassReverseCookiePath / /
    ProxyHTMLURLMap http://www.intern.de:8000/ http://www.extern.de/

    RequestHeader unset Accept-Encoding

</VirtualHost>
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 07. March 2008 13:38

Ich erhalte die folgende Fehlermeldung beim Restart des Apache:

RewriteRule: cannot compile regular expression '^/(+*)$'
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby Wiedmann » 07. March 2008 14:03

Wo er recht hat, hat er recht. *g*
Code: Select all
RewriteRule ^/(.+) http://www.intern.de:8000/$1 [P]

Sollte glaub eher tun.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kschroeder » 07. March 2008 14:03

Ich hab einfach mal die zweite RewriteRule mit dem Fehler weggelassen und siehe da, das reichte schon.
Soweit ich das bisher getestet habe, funktioniert alles.

Ich brauche beim Aufruf keinen Unterordner mehr angeben, das Login funktioniert und auch die Funktionen im anschließenden Hauptmenü.

Die RewriteEngine ist mein neuer Freund :wink:


Dir aber erstmal einen wirklich herzlichen Dank. Hab selten jemand mit soviel Ausdauer bei der Unterstützung gesehen.

Ich hoffe, ich kann Dir das vielleicht mal irgendwann zurückgeben.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Previous

Return to Apache

Who is online

Users browsing this forum: No registered users and 8 guests