Browse files

Rearranged the existing content and format of the chapter 7.

  • Loading branch information...
1 parent c81ad86 commit 29e3350d090502116d6788b5d537bd4458842b63 @mr-rock mr-rock committed with Jan 15, 2009
View
81 book-content/es/7-deployment/1-passenger.markdown
@@ -1,60 +1,93 @@
-#Passenger
+# Passenger
![Phusion Passenger](/images/phusion_banner.png){: .no-border}
-**Reference website:** [http://www.modrails.com/documentation/Users%20guide.html](http://www.modrails.com/documentation/Users%20guide.html){: .reference}
+**Sitio web de referencia:** [documentación sobre Passenger][]{: .reference}
+* Esto será una tabla de contenidos (este texto será pegado).
+{:toc}
-[Phusion Passenger](http://www.modrails.com/) is an Apache module for deploying [Rack](http://rack.rubyforge.org/) applications. As Merb is built on Rack, you can easily run it on Passenger and [Ruby Enterprise Edition](http://www.rubyenterpriseedition.com/). Ruby Enterprise Edition is a version of Ruby 1.8.6 with improvements to Ruby's garbage collection, which can typically reduce an applications memory footprint by 33%. The following instructions are for Linux.
+[Passenger][], desarrollado por la empresa holandesa [Phusion][],
+es un modelo de [Apache][] para desplegar aplicaciones [Rack][].
+Como Merb fue desarrollado como un Rack,
+usted puede ejecutar su aplicación Merb fácilmente
+en [Passenger][] utilizando [Ruby Edición Empresarial][].
+Este ultimo es una versión del interprete de Ruby versión 1.8.6
+que incluye mejoras en el sistema de recolección de basura y
+el cual reduce el uso de memoria de las aplicaciones en un 33%.
-##Installing Ruby Enterprise Edition (REE)
-Ruby Enterprise Edition can be installed along side a version of Ruby you currently have installed, as it will be installed into the <tt>/opt</tt> directory.
+A continuación se le presentaran las instrucciones para su instalación,
+las cuales son solamente para sistemas operativos Linux.
-*Note:* You will need to have the development readline libraries installed if you want run Merb interactively.
-### Download REE
+## Instalando Ruby Edicion Empresarial (REE)
+Este interprete puede ser instalado
+junto a su versión del interprete Ruby
+que usted tiene ya instalado.
+Esta versión será instalada dentro del directorio ``/opt``.
+
+*Nota:*
+Usted requerirá tener ya instalada la librería ``readline``
+si desea ejecutar Merb de manera interactiva.
+
+### Bajar REE
+Usted debe ejecutar el siguiente comando en su linea de comandos
$ wget http://rubyforge.org/frs/download.php/41040/ruby-enterprise-1.8.6-20080810.tar.gz
+{:lang=shell html_use_syntax=true}
-### Install
+### Instalación
+A continuación se le presentara la secuencia que debe seguir
+a fin de descomprimir el archivo bajado
$ tar xzvf ruby-enterprise-1.8.6-20080810.tar.gz
$ cd ruby-enterprise-1.8.6-20080810
- $ ./insaller
+ $ ./installer
+{:lang=shell html_use_syntax=true}
-
-##Installing Passenger
+## Instalando Passenger
+Luego, usted debe ejecutar los siguiente comandos
+a fin de proceder con la instalación e integración con [Apache][]
$ gem install passenger
$ passenger-install-apache2-module
+{:lang=shell html_use_syntax=true}
-##Configuration
-
-###config.ru
-The following file needs to be placed into your Merb applications root directory:
+## Configuracion
+### El archivo "config.ru"
+Este archivo requiere ser creado
+dentro del directorio raíz de su aplicación Merb.
# config.ru
require 'rubygems'
-
- # Uncomment if your app uses bundled gems.
+ require 'merb-core'
+
+ # Quitar los comentarios en caso que su aplicación utiliza gemas empaquetadas.
# gems_dir = File.expand_path(File.join(File.dirname(__FILE__), 'gems'))
# Gem.clear_paths
# $BUNDLE = true
# Gem.path.unshift(gems_dir)
- require 'merb-core'
-
Merb::Config.setup(:merb_root => File.expand_path(File.dirname(__FILE__)),
:environment => ENV['RACK_ENV'])
- Merb.environment = "production" #Merb::Config[:environment]
+ Merb.environment = "production" # Merb::Config[:ambiente]
Merb.root = Merb::Config[:merb_root]
Merb::BootLoader.run
- # Uncomment if your app is mounted at a suburi.
- # if prefix = ::Merb::Config[:path_prefix]
- # use Merb::Rack::PathPrefix, prefix
+ # Quitar comentarios en el caso que su aplicación sea montada en un sub-URI.
+ # if prefix = ::Merb::Config[:prefijo_camino]
+ # use Merb::Rack::PathPrefix, prefijo
# end
run Merb::Rack::Application.new
+{:lang=ruby html_use_syntax=true}
+
+## Tareas para Capistrano
+[Passenger]: http://www.modrails.com/
+[Phusion]: ...
+[Apache]: ...
+[Rack]: http://rack.rubyforge.org/
+[Ruby Edición Empresarial]: http://www.rubyenterpriseedition.com/
+[documentación sobre Passenger]: http://www.modrails.com/documentation/Users%20guide.html
-## Capistrano Task
+* [REE]: Ruby Edición Empresarial
View
217 book-content/es/7-deployment/2-nginx.markdown
@@ -1,16 +1,221 @@
-#Nginx
+# Nginx
+
![Nginx](/images/nginx-header.jpg){: .no-border}
-**Reference website:** [http://wiki.codemongers.com/Main](http://wiki.codemongers.com/Main){: .reference}
+**Sitio web de referencia:** [documentación sobre Nginx][]{: .reference}
+
+* Esto será una tabla de contenidos (este texto será pegado).
+{:toc}
+
+[Nginx][] (se pronuncia "enginx x") es un servidor HTTP y [proxy inverso]
+gratuito, de código abierto y de alto rendimiento,
+ademas de ser [servidor proxy] para IMAP y POP3.
+Escrito por [Igor Sysoev][] en el año 2005,
+este servidor esta actualmente manejando entre
+el 1% y el 4% de todos los dominios globales.
+A pesar de estar ser todavía una versión "beta",
+Nginx es conocido por su estabilidad, su gran conjunto de características,
+una configuración sencilla y por consumir pocos recursos.
+
+Como este servidor no provee actualmente de un adaptador directo para Merb,
+usted requerirá utilizar un [proxy reverso][] en Nginx
+con el fin de direccionar peticiones hacia uno o varios procesos Merb distintos.
+Esto puede ejecutarse con cualquier servidor de aplicaciones basado en Rack,
+como [Mongrel][], [Thin][], [Ebb][] o [Glassfish][].
+
+## Instalación
+Usted debe utilizar el manejador de paquetes que su
+sistema operativo provee a fin de instalar Nginx.
+
+Dependiendo de su sistemas operativo,
+proceda a ejecutar el siguiente comando.
+
+### Mac OS X (requiere [MacPorts][])
+ $ sudo port install nginx
+{:lang=shell html_use_syntax=true}
+
+### Debian / Ubuntu Linux
+ $ sudo apt-get install nginx
+{:lang=shell html_use_syntax=true}
+
+### Gentoo Linux
+ $ emerge www-servers/nginx
+{:lang=shell html_use_syntax=true}
+
+## Configuración
+En el caso de utilizar algún sistema operativo Linux,
+usted encontrara el archivo de configuración ``nginx.conf``
+en el directorio ``/etc/nginx/``.
+Si usted utiliza Mac OS X, lo encontrara en el directorio ``/opt/local/etc/nginx/``.
+
+### El archivo de configuración ``nginx.conf``
+A continuación se le presentara un ejemplo practico
+que muestra como usted debe configurar su servidor [Nginx][].
+
+ user <name> <group>;
+ worker_processes 4;
+ pid /var/run/nginx.pid;
+
+ events {
+ worker_connections 8192;
+ use epoll;
+ }
+
+ http {
+
+ include /etc/nginx/mime.types;
+
+ default_type application/octet-stream;
+
+ log_format main '$remote_addr - $remote_user [$time_local] '
+ '"$request" $status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ sendfile on;
+
+ tcp_nopush on;
+
+ gzip on;
+ gzip_http_version 1.0;
+ gzip_comp_level 2;
+ gzip_proxied any;
+ gzip_buffers 16 8k;
+ gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
+
+ server_names_hash_bucket_size 64;
+
+ upstream merb {
+ server 127.0.0.1:4000;
+ server 127.0.0.1:4001;
+ }
+
+ server {
+ listen 80;
+
+ root /path/to/merb/app/current/public;
+
+ access_log /path/to/merb/app/shared/log/access.log main;
+ access_log /path/to/merb/app/shared/log/error.log notice;
+
+ location / {
+
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+
+ proxy_redirect false;
+ proxy_max_temp_file_size 0;
+
+ if (-f $request_filename) {
+ break;
+ }
+
+ if (-f $request_filename.html) {
+ rewrite (.*) $1.html break;
+ }
+
+ if (!-f $request_filename) {
+ proxy_pass http://merb;
+ break;
+ }
+
+ } # location
+
+ } # server
+
+ } # http
+
+## Tareas para Capistrano
+A continuación se le presentara una configuración estándar para [Capistrano][].
+
+ set :application, "app"
+ set :scm, :git
+ set :repository, "git://github.com/usuario/repositorio.git"
+ set :deploy_to, "/path/to/merb/app"
+ set :monit_group, "app"
+ set :merb_env, "producción"
+
+ role :app, "IP.de.su.servidor"
+ role :web, "IP.de.su.servidor"
+ role :db, "IP.de.su.servidor"
+
+ ssh_options[:paranoid] = false
+
+ namespace :deploy do
+ [:start, :stop, :restart].each do |action|
+ task action, :roles => :app do
+ sudo "/usr/sbin/monit #{action.to_s} all -g merb_#{monit_group}"
+ end
+ end
+
+ task :migrate, :roles => :db do
+ run "cd #{release_path}; rake MERB_ENV=#{merb_env} db:migrate:up"
+ end
+
+ task :spinner, :roles => :app do
+ start
+ end
+ end
+{:lang=ruby html_use_syntax=true}
+A fin de desplegar su aplicación Merb por primera vez,
+usted debe ejecutar el siguiente comando
-[Nginx](http://wiki.codemongers.com/Main) (pronounced "engine x") is a free, open-source, high-performance HTTP server and [reverse proxy](http://en.wikipedia.org/wiki/Reverse_proxy), as well as an IMAP/POP3 [proxy server](http://en.wikipedia.org/wiki/Proxy_server). Written by [Igor Sysoev](http://sysoev.ru/en/) in 2005, Nginx now hosts between 1% and 4% of all domains worldwide (sources: [1](http://googleonlinesecurity.blogspot.com/2007/06/web-server-software-and-malware.html), [2](http://survey.netcraft.com/Reports/200806/)). Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption.
+ $ cap deploy:setup
+{:lang=shell html_use_syntax=true}
+Desde de esto, usted va a poder desplegar su aplicación
+con el siguiente comando
-## Installation
+ $ cap deploy
+{:lang=shell html_use_syntax=true}
+## Monit
+[Monit][] es una herramienta que usted puede ser usada
+para el comienzo, cierre y monitoreo arbitrario de servicios.
+La empresa [Engine Yard][] ha desarrollado un script envolvente llamado [monit\_merb\_mpc][]
+que permite que [Monit][] pueda gestionar Merb y si proceso principal.
+En la actual encarnación, ``monit\_merb\_mpc``
+requiere de modificaciones menores a fin de ejecutar afuera del stack de [Engine Yard][].
+Para mas información, referirse al [blog de Ezra][].
-## Configuration
+A fin de monitorear el proceso principal de Merb
+con sus respectivos procesos trabajadores,
+usted deberá agregar la siguiente configuración a [Monit][]:
+ check process merb_app_master
+ with pidfile /var/log/engineyard/app/app-production-merb.main.pid
+ start program = "/engineyard/bin/monit_merb_mpc app start_master -c2 -n4000"
+ stop program = "/engineyard/bin/monit_merb_mpc app stop_master"
+ # Si la memoria total es mayor a 80.0 MB para 2 ciclos entonces deberá reiniciar.
+ group merb_app
+
+ # Configuración de los procesos trabajadores (uno por cada puerto requerido)
+ check process merb_app_4000
+ with pidfile /var/log/engineyard/app/app-production-merb.4000.pid
+ start program = "/engineyard/bin/monit_merb_mpc app register_worker 4000"
+ stop program = "/engineyard/bin/monit_merb_mpc app restart_worker 4000"
+ # Si la memoria total es mayor a 80.0 MB para 2 ciclos entonces deberá reiniciar.
+ group merb_app
+
+ check process merb_app_4001
+ with pidfile /var/log/engineyard/app/app-production-merb.4001.pid
+ start program = "/engineyard/bin/monit_merb_mpc app register_worker 4001"
+ stop program = "/engineyard/bin/monit_merb_mpc app restart_worker 4001"
+ # Si la memoria total es mayor a 80.0 MB para 2 ciclos entonces deberá reiniciar.
+ group merb_app
-## Capistrano Task
+[Ebb]: http://ebb.rubyforge.org/
+[blog de Ezra]: http://brainspl.at/articles/2008/12/07/merb-master-worker-monit-control-setup
+[Glassfish]: https://glassfish.dev.java.net/
+[Igor Sysoev]: http://sysoev.ru/en/
+[MacPorts]: http://macports.org/
+[Mongrel]: http://mongrel.rubyforge.org/
+[Monit]: http://mmonit.com/monit/
+[monit\_merb\_mpc]: http://pastie.org/333352
+[Nginx]: http://wiki.codemongers.com/Main
+[servidor proxy]: http://en.wikipedia.org/wiki/Proxy_server
+[proxy reverso]: http://en.wikipedia.org/wiki/Reverse_proxy
+[Thin]: http://code.macournoyer.com/thin/
+[Engine Yard]: ...
+[documentación sobre Nginx]: http://wiki.codemongers.com/Main
View
5 book-content/es/7-deployment/3-jruby.markdown
@@ -1 +1,4 @@
-# JRuby and Glassfish
+# JRuby y Glassfish
+
+* Esto será una tabla de contenidos (este texto será pegado).
+{:toc}
View
6 book-content/es/7-deployment/4-bundle.markdown
@@ -1 +1,5 @@
-# Bundling your Merb application
+#Enpaquetando su aplicación Merb
+
+* Esto será una tabla de contenidos (este texto será pegado).
+{:toc}
+
View
36 book-content/es/7-deployment/toc.markdown
@@ -1,9 +1,31 @@
# deployment
- <ul class='toc'><li><a href='/es/deployment/passenger'>Passenger</a><ul style='list-style: none;'><li><a href='/es/deployment/passenger#installing_ruby_enterprise_edition_ree'>Installing Ruby Enterprise Edition (REE)</a><ul style='list-style: none;'><li><a href='/es/deployment/passenger#download_ree'>Download REE</a></li><li><a href='/es/deployment/passenger#install'>Install</a></li></ul></li><li><a href='/es/deployment/passenger#installing_passenger'>Installing Passenger</a></li><li><a href='/es/deployment/passenger#configuration'>Configuration</a><ul style='list-style: none;'><li><a href='/es/deployment/passenger#configru'>config.ru</a></li></ul></li><li><a href='/es/deployment/passenger#capistrano_task'>Capistrano Task</a></li></ul></li></ul>
-
-<ul class='toc'><li><a href='/es/deployment/nginx'>Nginx</a><ul style='list-style: none;'><li><a href='/es/deployment/nginx#installation'>Installation</a></li><li><a href='/es/deployment/nginx#configuration'>Configuration</a></li><li><a href='/es/deployment/nginx#capistrano_task'>Capistrano Task</a></li></ul></li></ul>
-
-<ul class='toc'><li><a href='/es/deployment/jruby'>JRuby and Glassfish</a></li></ul>
-
-<ul class='toc'><li><a href='/es/deployment/bundle'>Bundling your Merb application</a></li></ul>
+<ul class='toc'>
+ <li><a href='/es/deployment/passenger'>Passenger</a>
+ <ul style='list-style: none;'>
+ <li><a href='/es/deployment/passenger#installing_ruby_enterprise_edition_ree'>Instalando Ruby Edicion Empresarial (REE)</a>
+ <ul style='list-style: none;'>
+ <li><a href='/es/deployment/passenger#download_ree'>Bajar REE</a></li>
+ <li><a href='/es/deployment/passenger#install'>Instalación</a></li>
+ </ul>
+ </li>
+ <li><a href='/es/deployment/passenger#installing_passenger'>Instalando Passenger</a></li>
+ <li><a href='/es/deployment/passenger#configuration'>Configuración</a>
+ <ul style='list-style: none;'>
+ <li><a href='/es/deployment/passenger#configru'>El archivo "config.ru"</a></li>
+ </ul>
+ </li>
+ <li><a href='/es/deployment/passenger#capistrano_task'>Tareas para Capistrano</a></li>
+ </ul>
+ </li>
+ <li><a href='/es/deployment/nginx'>Nginx</a>
+ <ul style='list-style: none;'>
+ <li><a href='/es/deployment/nginx#installation'>Instalación</a></li>
+ <li><a href='/es/deployment/nginx#configuration'>Configuración</a></li>
+ <li><a href='/es/deployment/nginx#capistrano_task'>Tareas para Capistrano</a></li>
+ <li><a href='/es/deployment/nginx#monit'>Monit</a></li>
+ </ul>
+ </li>
+ <li><a href='/es/deployment/jruby'>JRuby y Glassfish</a></li>
+ <li><a href='/es/deployment/bundle'>Enpaquetando su aplicación Merb</a></li>
+</ul>

0 comments on commit 29e3350

Please sign in to comment.