Ruby Forum Italian Ruby user group > apache+mongrel x 2 app

Posted by Gino Ma (sij)
on 18.04.2008 15:16
Uso apache con mongrel per servire una app rails con il seguente file
di configurazione.
Funziona bene. Vorrei servire un'altra applicazione e immagino di dover
aggiungere un' altra sezione
<VirtualHost *:80>
</VirtualHost>
ma non riesco a configurarla, continua a servirmi solo la prima
applicazione
potete aiutarmi?
grazie

<VirtualHost *:80>
ServerName 72.192.209.102
DocumentRoot d:/jpnprj/jpn/public
<Directory "d:/jpnprj/jpn/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

# Configure mongrel instances
<Proxy balancer://mongrel_cluster>
BalancerMember http://72.192.209.102:4005
BalancerMember http://72.192.209.102:4006
</Proxy>

RewriteEngine On
# Uncomment for rewrite debugging
#RewriteLog logs/your_app_deflate_log deflate
#RewriteLogLevel 9
# Check for maintenance file and redirect all requests
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA]
# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]
# Redirect all non-static requests to cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
# Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Uncomment for deflate debugging
#DeflateFilterNote Input input_info
#DeflateFilterNote Output output_info
#DeflateFilterNote Ratio ratio_info
#LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)'
deflate
#CustomLog logs/your_app_deflate_log deflate
ErrorLog logs/your_app_error_log
CustomLog logs/your_access_log combined
</VirtualHost>
Posted by Paolo Montrasio (pmontrasio)
on 18.04.2008 15:54
Sarebbe utile vedere la configurazione completa del secondo virtual 
host.
Così alla cieca mi viene in mente che ad apache si deve dar modo di 
capire a quale cluster di mongrel passare le richieste. O lo fa 
guardando il server name o lo fa guardando le URL. Poiché il server name 
qui è l'indirizzo IP, non può farlo in questo modo, ma con questa 
configurazione non può usare un prefisso dell'URL per discriminare tra 
le due applicazioni.

Prova a fare questa prova in locale (se su Windows, vero?)

Metti in c:\windows\system32\drivers\etc\hosts queste due linee

127.0.0.1 app1.prova.com
127.0.0.1 app2.prova.com

Poi configura i due virtual host uno con ServerName app1.prova.com e 
l'altro con ServerName app2.prova.com

I due gruppi di mongrel dovranno poi partire su porte diverse, e nei due 
virtual host ad esempio configurali come:

BalancerMember http://127.0.0.1:4005
BalancerMember http://127.0.0.1:4006

BalancerMember http://127.0.0.1:5005
BalancerMember http://127.0.0.1:5006

A questo punto è possibile che apache abbia tutte le informazioni 
necessarie.
Guarda se col browser arrivi all'una e all'altra con 
http://app1.prova.com e http://app2.prova.com
Poi per renderle visibili dall'esterno dovrai usare un servizio di DNS 
tra i tanti disponibili.

Ciao
Paolo

Bi Ma wrote:
> Uso apache con mongrel per servire una app rails con il seguente file
> di configurazione.
> Funziona bene. Vorrei servire un'altra applicazione e immagino di dover
> aggiungere un' altra sezione
> <VirtualHost *:80>
> </VirtualHost>
> ma non riesco a configurarla, continua a servirmi solo la prima
> applicazione
> potete aiutarmi?
> grazie
> 
> <VirtualHost *:80>
> ServerName 72.192.209.102
> DocumentRoot d:/jpnprj/jpn/public
> <Directory "d:/jpnprj/jpn/public">
> Options FollowSymLinks
> AllowOverride None
> Order allow,deny
> Allow from all
> </Directory>
> 
> # Configure mongrel instances
> <Proxy balancer://mongrel_cluster>
> BalancerMember http://72.192.209.102:4005
> BalancerMember http://72.192.209.102:4006
> </Proxy>
> 
> RewriteEngine On
> # Uncomment for rewrite debugging
> #RewriteLog logs/your_app_deflate_log deflate
> #RewriteLogLevel 9
> # Check for maintenance file and redirect all requests
> RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
> RewriteCond %{SCRIPT_FILENAME} !maintenance.html
> RewriteRule ^.*$ /system/maintenance.html [L]
> # Rewrite index to check for static
> RewriteRule ^/$ /index.html [QSA]
> # Rewrite to check for Rails cached page
> RewriteRule ^([^.]+)$ $1.html [QSA]
> # Redirect all non-static requests to cluster
> RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
> RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
> # Deflate
> AddOutputFilterByType DEFLATE text/html text/plain text/xml
> BrowserMatch ^Mozilla/4 gzip-only-text/html
> BrowserMatch ^Mozilla/4\.0[678] no-gzip
> BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
> # Uncomment for deflate debugging
> #DeflateFilterNote Input input_info
> #DeflateFilterNote Output output_info
> #DeflateFilterNote Ratio ratio_info
> #LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)'
> deflate
> #CustomLog logs/your_app_deflate_log deflate
> ErrorLog logs/your_app_error_log
> CustomLog logs/your_access_log combined
> </VirtualHost>
Posted by Giovanni Nicolazzo (Guest)
on 18.04.2008 19:27
(Received via mailing list)
Alle venerdì 18 aprile 2008, Paolo Montrasio ha scritto:
>
>
> BalancerMember http://127.0.0.1:4005
> BalancerMember http://127.0.0.1:4006
>
> BalancerMember http://127.0.0.1:5005
> BalancerMember http://127.0.0.1:5006
>

Approfitto di questo thread per fare una domanda: da questa 
configurazione e
da tutta la documentazione che ho letto ho dedotto che quindi ogni 
webapp
dovrà avere almeno  un'istanza di mongrel attiva su una porta diversa.
Se è così, un server che fa ad esempio hosting deve avere almeno n istanze 
di
mongrel attive per quanti sono i domini/webapps???
Ciao
Giovanni.
Posted by Luca Terzaroli (Guest)
on 18.04.2008 22:52
(Received via mailing list)
Forse devi aggiungere nella definizione del virtual host anche il
balancer che usi

<VirtualHost *:80>
.....
ProxyPass / balancer://mongrel_cluster
.....
</VirtualHost>
  e
la stessa direttiva credo vada inserita nella definizione della
sezione principale




Il giorno 18/apr/08, alle ore 15:16, Bi Ma ha scritto:

> grazie
>
> # Check for maintenance file and redirect all requests
> # Deflate
> #CustomLog logs/your_app_deflate_log deflate
> ErrorLog logs/your_app_error_log
> CustomLog logs/your_access_log combined
> </VirtualHost>
> -- 
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> Ml@lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml

Chiacchiera con i tuoi amici in tempo reale!
 http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com
Posted by S2 akira (_simon_)
on 19.04.2008 12:02
Giovanni Nicolazzo wrote:

> Se � cos�, un server che fa ad esempio hosting deve avere almeno n istanze 
> di
> mongrel attive per quanti sono i domini/webapps???

In shared hosting non si usano i mongrel ma fastcgi, almeno finché 
mod_rails non sarà uscito dalla beta.