Ruby Forum Rails Germany > Mongrel und Apache, wie ist das mit den Ports?

Posted by Holger Hänisch (ortwin)
on 17.04.2008 20:08
Hallo Liste,

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?

Danke für die Hilfe.

Holger
Posted by Stefan Tilkov (Guest)
on 17.04.2008 20:18
(Received via mailing list)
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:

<Proxy balancer://irgendein_name>
  BalancerMember http://127.0.0.1:3000
  BalancerMember http://127.0.0.1:3001
</Proxy>

RewriteRule ^/vaps/(.*)$ balancer://irgendein_name/$1 [P,QSA,L]

Alternativ kannst Du auch ProxyPass/ProxyPassReverse einsetzen, kommt
drauf an, wie genau Dein Setup aussieht.

In jedem Fall werden Anfragen dann vom Apache entgegengenommen (auf
Port 80) und bei Bedarf an den Mongrel weitergeleitet.

HTH,
Stefan
--
Stefan Tilkov, http://www.innoq.com/blog/st/
Posted by Thomas R. Koll (Guest)
on 17.04.2008 20:32
(Received via mailing list)
Am 17.04.2008 um 20:17 schrieb Stefan Tilkov:

> 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.

ciao, tom

--
Thomas R. "TomK32" Koll || http://tomk32.de || http://ananasblau.com
just a geek trying to change the world
Skype: TomK32 || Mail: tomk32@gmx.de
Posted by Holger Hänisch (ortwin)
on 18.04.2008 05:35
Stefan Tilkov wrote:
> 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.

Danke für die Hilfe!

Holger
Posted by Carsten Bormann (Guest)
on 18.04.2008 07:28
(Received via mailing list)
On Apr 18 2008, at 05:35, Holger Hänisch wrote:
> Ich scheitere leider schon im Ansatz

Einfacher:

   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.

Gruesse, Carsten
Posted by Ralf Graf (Guest)
on 18.04.2008 09:44
(Received via mailing list)
Hallo Holger,

Am 18.04.2008 um 05:35 schrieb Holger Hänisch:
> 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:

http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

Viele 
GrüßeRalf
Posted by Michael Siebert (Guest)
on 18.04.2008 09:49
(Received via mailing list)
oder du versuchst es mit passenger (aka mod_rails). Dann brauchst du
dir um proxy_balancer, ports usw keine gedanken mehr machen...

www.modrails.com

installation ist sau einfach, am besten du schaust dir den screencast
an und machst es dann nach.

Am 17.04.2008 um 20:08 schrieb Holger Hänisch:
> Wie bringe ich Apache2 also bei die Anfragen an eine bestimmte  
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

---
Siebert WD
Michael Siebert
Trappenweg 6, 15749 Mittenwalde, Deutschland
Posted by Werner Laude (Guest)
on 18.04.2008 10:17
(Received via mailing list)
Am 18.04.2008 um 09:48 schrieb Michael Siebert:

> oder du versuchst es mit passenger (aka mod_rails). Dann brauchst du  
> dir um proxy_balancer, ports usw keine gedanken mehr machen...
>
> www.modrails.com
>
> installation ist sau einfach, am besten du schaust dir den  
> screencast an und machst es dann nach.
>

Klingt spannend
Wie sind deine Erfahrungen damit ?

Nutzt du das produktiv ?
Gruß 


Werner Laude
Lindenburger Allee 22  -  50931 
Köln
0221.8805 635

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.webagentur-laude.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Posted by Michael Siebert (Guest)
on 18.04.2008 12:59
(Received via mailing list)
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)

mfg
Am 18.04.2008 um 10:16 schrieb Werner Laude:
>>
>
> _______________________________________________
> rubyonrails-ug mailing list
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

---
Siebert WD
Michael Siebert
Trappenweg 6, 15749 Mittenwalde, Deutschland
Posted by Holger Hänisch (ortwin)
on 18.04.2008 17:34
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.

Holger
Posted by unknown (Guest)
on 18.04.2008 17:51
(Received via mailing list)
dann bist du hiermit verpflichtet, uns über die stabilität, fehler
etc zu berichten.
:)

Am 18.04.08 schrieb Holger Hänisch <lists@ruby-forum.com>:
> 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.
>
> Holger
> --
> Posted via http://www.ruby-forum.com/.
>


--
Siebert Webdesign
Michael Siebert
Trappenweg 6, 15749 Mittenwalde, Deutschland
Posted by Torsten Flammiger (Guest)
on 19.04.2008 14:58
(Received via mailing list)
On 20:08 Do 17 Apr, Holger Hänisch wrote:
> 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):

<VirtualHost *>
 ServerAdmin <hier deine Adresse>
 ServerName <dito>
 ServerAlias <auch irgendwas>
 CustomLog /pfad/zum/logfile

 # jetzt gehts los
 <Proxy *>
   Order deny,allow
   Allow from all
 </Proxy>

 # bei Dir halt 3000 und die Adresse ist auch anzupassen
 # muss ja nicht auf localhost sein
 ProxyPass / http://localhost:8000/
 ProxyPassReverse / http://localhost:8000/
 ProxyPreserveHost on
 ProxyRequests Off

 # Zugriff auf statischen Inhalt nicht über Mongrel
 # (natürlich beliebig erweiterbar)
 ProxyPass /images !
 ProxyPass /stylesheets !

 # Alias und Pfad zum statischen Inhalt
 Alias /images /pfad/zu/public/images
 Alias /stylesheets  /pfad/zu/public/stylesheets
</VirtualHost>

Den Indianer neu starten und fortan sollte das passen...

Gruß 
Torsten