Ich muss gleich mal vorweg sagen: ich beschäftige mich erst seit kurzer Zeit mit Apache, da ich begonnen habe Ruby On Rails zu lernen. Also bitte verzeiht "doofe" Fragen Nun habe ich meinen eigenen vServer soweit eingerichtet, dass ich mit Mongrel meine Rails-Applikationen zum laufen gebracht habe. Auf weite Sicht möchte ich jedoch den Apachen dafür verwenden, Bilder etc. statisch auszuliefern und alle Requests, die von Rails verarbeitet werden sollen, mittels LoadBalancer an ein Mongrel-Cluster weiterzureichen. So weit, so gut, nun zum eigentlich viel kleineren Problem:
Um klein anzufangen, habe ich mich erstmal mit einer einfachen Weiterleitung versucht. Der Apache soll die URL http://www.mysite.de:8000/ erhalten und dann die index.html die sich in http://www.mysite.de/test/ befindet zurückliefern. Der entsprechende Teil der httpd.conf sieht bei mir so aus:
- Code: Select all
# Avoid being an open forward proxy
ProxyRequests off
Listen 8000
NameVirtualHost *:8000
<VirtualHost *:8000>
ServerName mysite.de:8000
ServerAlias www.mysite.de:8000
ErrorLog /var/log/apache2/test_error.log
LogLevel warn
ProxyPass / http://www.mysite.de/test/
ProxyPassReverse / http://www.mysite.de/test/
ProxyPreserveHost on
</VirtualHost>
Wenn ich nun versuche http://www.mysite.de:8000/ aufzurufen bekomme ich erstmal nen HTTP 403:
- Code: Select all
~$ wget http://www.mysite.de:8000/
...
HTTP Anforderung gesendet, warte auf Antwort... 403 Forbidden
2009-10-02 18:11:48 FEHLER 403: Forbidden.
Mein dafür angelegtes test_error.log enthält folgendes:
- Code: Select all
[Fri Oct 02 16:15:09 2009] [error] [client xxx.xx.xxx.x] client denied by server configuration: proxy:http://www.mysite.de/test/
[Fri Oct 02 16:15:09 2009] [error] [client xxx.xx.xxx.x] client denied by server configuration: proxy:http://www.mysite.de/test/favicon.ico, referer: http://www.mysite.de:8000/
Was habe ich hier falsch gemacht? Ich meine herausgefunden zu haben, dass eine Standard-Einstellung mir das verbietet. Ich konnte den gewünschten Effekt erzielen, als ich in meiner httpd.conf Proxy-Requests für alle erlaubt habe, aber das scheint mir ne ganz fürchterlich schlechte Lösung zu sein, weil dann ist mein Server ja ein offener Forward Proxy oder nicht? So hab ichs gemacht:
- Code: Select all
<VirtualHost *:8000>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
...
</VirtualHost>
Vielleicht hat ja jemand nen Tip oder hatte schonmal ein ähnliches Problem? Vielen Dank für eure Hilfe!
Gruß,
Patrick