On Jan 11, 2007, at 12:06 PM, JJ Merelo wrote:
Hola,
Rails no es thread-safe, por eso el deployment normal de Rails es
multi-proceso. Por ejemplo con multiples FastCGIs, o con
mongrel_cluster balanceado.
Hum. ¿Como se hace eso? ¿Algún enlace?
Es sencillote con Apache 2.2.3 o superior. Lo compilas con
mod_proxy_balancer:
./configure
–enable-proxy
–enable-proxy-balancer
–enable-proxy-http
–enable-rewrite
–enable-cache
–enable-headers
–enable-ssl
–enable-info
Metes un config/mongrel_cluster.yml con esta pinta
port: “3001”
environment: development
address: 127.0.0.1
pid_file: log/mongrel.pid
servers: 3
que configura tres servidores con puertos 3001, 3002, 3003 (no se que
pasa si uno de ellos esta ocupado). Mongrel puede invocarse para que
genere ese YAML a partir de opciones en linea de comandos, pero al
final es eso. Quien pone 3 puede poner 7, eso ya ves un poco. Como
sabes en modo produccion la cosa va mucho mas rapida.
Y configuras Apache como va abajo, han de casar los puertos Mongrel
con los que se configuran en el balanceador. Una vez hecho eso lanzas
Apache y en la aplicacion ejecutas
mongrel_rails cluster::start
Tienes tambien comandos “cluster::stop”, “cluster::restart”. El
balanceador y Mongrel se repescan solos, no hay dependencia en el
lanzamiento. En particular puedes tirar y arrancar Mongrel de nuevo
sin tocar Apache.
– fxn
This is the recommend MIME type according to http://
Favicon - Wikipedia.
AddType image/vnd.microsoft.icon .ico
Configure the balancer to dispatch to the Mongrel cluster.
<Proxy balancer://example_cluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
BalancerMember http://127.0.0.1:3003
Setup the VirtualHost for your Rails application
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.example.com
ServerAlias localhost
Not supported on Mac OS X.
EnableSendfile On
DocumentRoot /home/oper/www/public
<Directory ‘/home/oper/www/public’>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
ProxyPass /favicon.ico !
ProxyPass /system !
ProxyPass / balancer://example_cluster/
ProxyPassReverse / balancer://example_cluster/
Setup your Rewrite rules here
RewriteEngine On
This rewrites all requests to /system/maintenance.html if that
file exists, this file is created by Capistrano’s disable task.
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/
css application/x-javascript
Error logs
ErrorLog /home/oper/www/log/apache_error_log
CustomLog /home/oper/www/log/apache_access_log combined