Nginx simple cluster en 5 minutos – Parte 1

Nginx simple cluster, querido intento de tutorial.. bueno, si no fuera por que la E.P.E corto la luz el día de ayer hoy tendría mis artículos preparados, son tanta mala suerte que lo estaba escribiendo en consola no se me ocurrió guardar un buffer del texto antes del corte, por consiguiente voy a elaborar menos y mostrar mas.

Nginx simple cluster, iniciando el tutorial…

Hoy vamos a armar un nginx simple cluster con PHP-FPM utilizando como base Ubuntu Server Edition, lo se, no es algo que yo use generalmente pero bueno, vamos a darle una oportunidad a esta distribución. Yo para no tener que preparar 3 computadoras distintas estoy usando maquinas virtuales con OpenVZ, si bien pierde la magia, ya que la idea del cluster es que este en equipos separados, pero esto es una prueba después de todo no?.

Equipos y roles.

  • ROL: Despachador
  • Nombre: gate.barrahome.org
  • Memoria: 1GB de RAM
  • Espacio en Disco: 1GB
  • Modulo usado: Http Upstream Module
  • ROL: Servidor Web 01
  • Nombre: nginx.01.barrahome.org
  • Memoria: 1.5GB de RAM
  • Espacio en Disco: 25GB
  • Modulos usado: GZIP de NGINX y PHP-FPM
  • ROL: Servidor Web 02
  • Nombre: nginx.02.barrahome.org
  • Memoria: 1.5GB de RAM
  • Espacio en Disco: 25GB
  • Modulos usado: GZIP de NGINX y PHP-FPM

Primeros pasos

En el primer equipo gate.barrahome.org instale como dije antes Ubuntu Server Edition, la versión es la 11.04 pero ustedes pueden instalar la que mas les guste.

La instalación BÁSICA trae Apache2, vamos hacer una limpieza general en los tres equipos antes de proceder:

root@nginx:/# apt-get remove apache2

Luego vamos a instalar cosas que nos hacen falta en el primer servidor como nuestros editores y el servidor web, utilizamos el siguiente comando:

root@nginx:/# apt-get -y install nginx nano

Luego de instalar vamos a utilizar nuestro nuevo editor (no soy fan de VIM y que.):

root@gate:/# nano /etc/nginx/sites-enabled/default

Borren todo el contenido del archivo (CONTROL+K) y escriben lo siguiente:

upstream barrahome_servers {
server 74.63.211.246:80  weight=10 max_fails=3 fail_timeout=30s;
server 74.63.211.247:80  max_fails=3 fail_timeout=30s;
}

server {
        listen   80;
        root /usr/share/nginx/www;
        index index.html index.htm index.php;
        server_name gate.barrahome.org;
        location / {
                proxy_pass              http://barrahome_servers;
                proxy_redirect          off;
                proxy_next_upstream     error timeout invalid_header http_500;
                proxy_connect_timeout   2;
                proxy_set_header        Host            $host;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

En este caso utilizo 2 direcciones las cuales están presentes ahí, cámbienlas por las que tengan agregadas en sus equipos.

Lo que estoy diciendo en la configuración es que tengo 2 servidores, con X direcciones IP y en X puerto y con weight indico que cada 10 conexiones la numero 11 debe ir al otro servidor, con max_fails pongo la cantidad de intentos y con fail_timeout pongo el tiempo de espera antes de moverte al otro equipo cuando falle el actual.

La primera parte como verán es simple y rápida de hacer, en los próximos días terminare (esta vez me compre un UPS) la segunda parte donde describo el proceso de instalación para los equipos que servirán el contenido. Podríamos decir que estamos construyendo nuestro propio cloud cierto? 🙂

Leave a Reply

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

This site uses Akismet to reduce spam. Learn how your comment data is processed.