PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Apache2] ProxyPass für mod_userdir



~Gh05t~
03.02.06, 09:05
Hi all,
ich habe einen Apache2-server als Proxy laufen. Apache macht dabei nur ein paar Kleinigkeiten selber, der Rest (das http-root) wird von einem anderen Server übernommen (Zope).

Nun möchte ich aber das mod_userdir nutzen (also Zugriff über Apache auf 'http://meinhost/~user').
Wie bringe ich meinem Apache die Proxy-Regel dafür bei? Die Config sieht im moment irgendwie so aus:


<VirtualHost *:80>
...
ProxyPass /awstatsicons !
ProxyPass /cgi-bin !
ProxyPass /awstats !
...
ProxyPass / http://meinhost:8080/
ProxyPassReverse / http://meinhost:8080/
</VirtualHost>

Jemand nen Tip? Ich kann doch nicht alle User da einzeln eintragen...

marce
03.02.06, 09:13
hab's nicht ausprobiert - aber wenn Du auf dem Proxy das mod_userdir nicht nutzt müsste er es eigentlich exakt so an den anderen weiterreichen...

~Gh05t~
03.02.06, 10:58
der andere kennt das aber nicht. Das mod_userdir soll ja von meinem Apache (der als Proxy arbeitet) bereitgestellt werden. Der leitet aber alles was nicht explizit ausgeschlossen ist (hier: /awstats, /cgi-bin) an den anderen Webserver weiter, also auch 'http://meinhost/~user'. Und der andere ist kein apache, unterstützt also kein userdir.

marce
03.02.06, 11:13
Verständnisfrage: willst Du dann die Userdirs abbilden auf den anderen Server oder sollen die vom Apache geliefert werden?

~Gh05t~
03.02.06, 15:46
Apache soll die userdirs zur verfügung stellen. Ich suche die Konfiguration dafür, dass Apache die Anfragen selber behandelt und sie nicht von dem 2. Webserver abhandeln lässt ;)

marce
03.02.06, 16:11
lt. http://httpd.apache.org/docs/2.0/mod/mod_proxy.html suchst Du:

The ! directive is useful in situations where you don't want to reverse-proxy a subdirectory, e.g.

ProxyPass /mirror/foo/i !
ProxyPass /mirror/foo http://backend.example.com

will proxy all requests to /mirror/foo to backend.example.com except requests made to /mirror/foo/i.
Note

Order is important. you need to put the exclusions before the general proxypass directive.

When used inside a <Location> section, the first argument is omitted and the local directory is obtained from the <Location>.


edit: vermutlich brauchst Du noch http://httpd.apache.org/docs/2.0/mod/core.html#location mit einer RegExp - kann es aber hier nicht nachvollziehen...

~Gh05t~
04.02.06, 10:08
der versteht Regex??
Hatte schon mal "^/~(.*)" probiert, das hat aber irgendwie nicht funktioniert.

In der Funktionsbeschreibung zu ProxyPass steht das ja auch nicht bei (sonst steht es dabei): http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypass

marce
04.02.06, 23:14
der Proxy wohl nicht - aber am Ende steht - der schon oben von mir zitierte Absatz:

When used inside a <Location> section, the first argument is omitted and the local directory is obtained from the <Location>. Und Location kann RegEx...

~Gh05t~
06.02.06, 16:06
hmmm... bei <Location> stehts nicht bei. Aber bei <LocationMatch ...>. Gute Idee, werd ich mal ausprobieren!