Inetd e i servizi di rete: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
m (→Introduzione) |
|||
Riga 1: | Riga 1: | ||
La soluzione pi� diffusa e stabile, per la messa on-line di un applicativo scritto in ruby on rails, � data dall'accoppiata Mongrel e Apache2! | |||
= Introduzione = | |||
La struttura del nostro ambiente di produzione � descritta nella seguente figura: | |||
TODO!!! | |||
Tutte le richieste arriveranno al server web apache, che si occuper� di dirottare le richieste dinamiche a uno dei server mongrel, mentre servir� i contenuti di tipo statico direttamente, senza cos� appesantire le istanze di mongrel con richieste che possono essere processate direttamente da apache. | |||
Questa struttura, inoltre, permette espansioni future per garantire una buona scalabilit� in caso di un forte aumento delle richieste: potremo, in futuro, spostare le verie istanze di mongrel su server differenti, distribuire il filesystem in modo da avere "pi� apache" pronti ad accettare le richieste, ... | |||
= Installazione = | |||
== Apache2 == | |||
Per installare Apache � sufficiente un | |||
<pre> | |||
# apt-get install apache2-mpm-prefork libapache2-mod-proxy-html | |||
</pre> | |||
Consiglio la versione "prefork" in quanto � supportata pienamente anche da php5, e di conseguenza non ci saranno problemi ad installare anche applicazioni come phpmyadmin, molto comoda per la gestione di database mysql. L'installazione base di apache, per�, non � sufficiente per i nostri fini, infatti dobbiamo abilitare alcuni moduli: | |||
* deflate | |||
* proxy_balancer | |||
* proxy_connect | |||
* proxy_html | |||
* proxy_http | |||
* proxy | |||
* rewrite | |||
per abilitarli: | |||
<pre> | |||
# a2enmod deflate | |||
# a2enmod proxy_balancer | |||
# a2enmod proxy_connect | |||
# a2enmod proxy_html | |||
# a2enmod proxy_http | |||
# a2enmod proxy | |||
# a2enmod rewrite | |||
</pre> | |||
La configurazione di default del modulo proxy permette connessioni solo dall'indirizzo ip 127.0.0.1. Questa situazione rende impossibile, per�, l'accesso al VirtualHost che andremo a configurare dall'esterno. A tal proposito dobbiamo modificare il file di configurazione del modulo (''nome del file di configurazione'') modificando la seguente riga: | |||
TODO | |||
Una volta abilitati i moduli e fatte le modifiche necessarie, riavviamo apache: | |||
<pre> | <pre> | ||
# /etc/init.d/apache2 restart | |||
</pre> | |||
L'installazione e la configurazione base di apache sono terminate. | |||
== Ruby == | |||
Se non � gi� presente sulla macchina, provvediamo ad installare ruby ed i componenti pi� importanti, necessari alla compilazione di mongrel: | |||
<pre> | <pre> | ||
# apt-get install ruby irb ri rdoc ruby1.8-dev build-essential | |||
</pre> | |||
== Rails == | |||
Prima di tutto scarichiamo rubygems dal sito ufficiale: http://www.rubygems.org/ | |||
In questo momento l'ultima versione � la [http://rubyforge.org/frs/download.php/28174/rubygems-0.9.5.tgz 0.9.5]: | |||
<pre> | |||
# wget http://rubyforge.org/frs/download.php/28174/rubygems-0.9.5.tgz | |||
# tar xzvf rubygems-0.9.5.tgz | |||
# cd rubygems-0.9.5 | |||
# ruby setup.rb | |||
</pre> | |||
Ora possiamo installare rails, facendo attenzione alla versione richiesta dal nostro applicativo: | |||
* Ultima versione | |||
<pre> | |||
# gem install rails | |||
</pre> | |||
* Una versione specifica | |||
<pre> | |||
# gem install rails -v 1.2.5 | |||
</pre> | |||
== Mongrel == | |||
Mongrel si installa allo stesso modo di rails, inoltre installeremo anche mongrel-cluster, che ci semplificher� moltissimo la vita: | |||
<pre> | |||
# gem install mongrel | |||
# gem install mongrel_cluster | |||
</pre> | |||
<pre> | = Configurazione = | ||
== Mongrel == | |||
La configurazione del cluster di server mongrel � semplice, e si riduce a creare un semplice file di configurazione. Questo � quello base, da cui partire: | |||
<pre> | |||
--- | |||
cwd: /opt/applicativo/ | |||
log_file: log/mongrel.log | |||
port: "3000" | |||
environment: production | |||
address: 127.0.0.1 | |||
pid_file: tmp/pids/mongrel.pid | |||
servers: 3 | |||
</pre> | |||
Nei dettagli tutte le voci: | |||
; cwd : ''current work directory'', cio� la directory in cui � presente l'applicativo. � consigliato usare SEMPRE un percorso assoluto. | |||
; log_file : dove conservare i log di mongrel. Il valore di default va pi� che bene | |||
; port : la porta iniziale per l'array di server mongrel | |||
; environment : l'envirorment di rails da utilizzare... normalmente si usa production (essendo un server di produzione), ma in casi particolari si pu� inserire un nuovo ambiente. | |||
; address : l'indirizzo IP su cui mettersi in ascolto. Le scelte pi� comuni sono: | |||
:; 127.0.0.1 : il cluster sar� raggiungibile solo da applicazioni residenti sul server su cui � in esecuzione mongrel, impostazione consigliata a meno di configurazioni pi� complesse | |||
:; 0.0.0.0 : il cluster sar� raggiungibile da qualsiasi indirizzo esterno, scelta sconsigliata a meno che non ci si trovi in un ambiente protetto | |||
; pid_file : dove inserire i [[pid]] dei vari processi mongrel | |||
; servers : il numero di server mongrel da lanciare. | |||
Questo file | == Apache == | ||
Questo � un classico file di configurazione di apache per un VirtualHost, che sfrutta 3 server mongrel. | |||
<pre> | |||
da inserire | |||
<pre> | </pre> | ||
le spiegazioni sono nei commenti del file di configuarzione. Consiglio di non cancellarli quando si utilizza questo template, in quanto possono sempre tornare utili nel futuro ;) | |||
=== | = Avvio, Arresto e Riavvio di un cluster Mongrel = | ||
In questa parte del tutorial vedremo come lanciare, fermare e riavviare una batteria di server mongrel: | |||
== Avvio == | |||
== Arresto == | |||
== Riavvio == | |||
= Conclusione = | |||
Giunti a questo punto abbiamo configurato alla perfezione sia apache che mongrel... se tutto funziona a dovere il nostro applicativo dovrebbe essere visibile dall'esterno ;) | |||