was mir noch Kopfzerbrechen bereitet ist das Zusammenwirken der
Web/Application Server. Ich verstehe das Port Handling nicht. Mein
Apache2 verarbeitet alles was auf Port 80 ankommt. Mongrel lauscht auf
Port 3000. Jetzt kann ich aber wegen Firewall usw. an einem Arbeitsplatz
in einer Firma nur Post 80 Verbindungen aufbauen. Und :3000 möchte man
ja auch nicht immer an die Adresse anhängen müssen.
Wie bringe ich Apache2 also bei die Anfragen an eine bestimmte Subdomain
an Port 3000 weiterzuleiten. Oder ist das der falsche Ansatz?
Was Du brauchst, heißt mod_proxy_balancer (musst Du ggf.
nachinstallieren, je nach Systemumgebung). Damit kannst Du Deinen
Apachen so konfigurieren, dass er alle Anfragen an eine bestimmte URL
oder einen bestimmten Pfad an Deinen Mongrel-Cluster weiterleitet.
In der httpd.conf (bzw. bei Debian der Dateien unter /etc/apache2/
sites-enabled) steht dann sinngemäß so etwas:
In jedem Fall werden Anfragen dann vom Apache entgegengenommen (auf
Port 80) und bei Bedarf an den Mongrel weitergeleitet.
Das mit dem “bei Bedarf” heißt wenn es keine statische Datei gibt die
der Apache ausliefern könnte,
diese Requests an den mongrel weiterzuleiten wäre nämlich Unsinn.
Was Du brauchst, heiß´ mod_proxy_balancer (musst Du ggf.
nachinstallieren, je nach Systemumgebung). Damit kannst Du Deinen
Apachen so konfigurieren, dass er alle Anfragen an eine bestimmte URL
oder einen bestimmten Pfad an Deinen Mongrel-Cluster weiterleitet.
Ich scheitere leider schon im Ansatz. Den Proxy_balancer gibt es in
meiner Modulsammlung nicht. Und Apache.org kann ich ihn auch nicht
finden. Wo gibt es das Modul?
Ein Versuch mit Proxypass ist gescheitert. Ich könnte mir vorstellen,
dass der Proxypass nichts mit einer Weiterleitung auf einen anderen Port
zu tun haben will.
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ “http://localhost:3000/$1” [P,QSA,L]
Die mittlere Zeile ist schon eine Optimierung (statische Files direkt
aus Apache ausliefern); bei Problemen diese Zeile weglassen.
(Es gibt noch ein paar mehr Zeilen, die man braucht, um Page-Caching
voll wirksam werden zu lassen; habe ich weggelassen.)
localhost ggfs. durch den Hostnamen des Rechners ersetzen, auf dem der
Mongrel laeuft. 3000 durch die Portnummer des Mongrel ersetzen.
Ich scheitere leider schon im Ansatz. Den Proxy_balancer gibt es in
meiner Modulsammlung nicht. Und Apache.org kann ich ihn auch nicht
finden. Wo gibt es das Modul?
das Modul gibt es erst in Apache Version 2.2, vielleicht ist das Dein
Problem:
Ich habe es mit passenger versucht. Nachdem ich die Rechte der Dateien
richtig gesetzt hatte ging es dann auch. Mir scheint das wirkliche eine
gute Lösung. Danke für alle Tipps.
Ich habe es mit passenger versucht. Nachdem ich die Rechte der Dateien
richtig gesetzt hatte ging es dann auch. Mir scheint das wirkliche eine
gute Lösung. Danke für alle Tipps.
an Port 3000 weiterzuleiten. Oder ist das der falsche Ansatz?
meine Virtual-Host Definition des Apachen sieht so aus (und das tut es
ganz hervorragend):
Ich habs ausprobiert und benutze es auf einem (unbenutzten) staging-
system. extrem einfach und funktioniert. produktiv habe ich damit
keine erfahrungen, sollte aber stabil sein (lt aussage von phusion)