Supongamos esto:

3 servidores web con el contenido a mostrar, espejos uno de otro. dos con Windows Server e IIS y uno con Debian y apache. Un balanceador de cargas con nginx instalado.
Nginx se encargará de dirigir el tráfico al servidor correspondiente para que todos tengan un tiempo de uso de cpu y memoria similar.
Para ello instalamos nginx y editamos la configuración por defecto de /etc/nginx/nginx.conf
Podemos escribir algo asi:
- Código: Seleccionar todo
# usuario y grupo, ponedlo a vuestro gusto
user www-data;
worker_processes 8;
pid /var/run/nginx.pid;
events {
worker_connections 15;
multi_accept on;
}
http {
##
# Confg basica
##
sendfile off;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 3;
types_hash_max_size 2048;
##
# Referente a logueo
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Mime types para el navegador
##
#include /etc/nginx/mime.types;
#default_type application/octet-stream;
##
# Virtual Host
##
upstream balanceador {
server 192.168.1.100:81; weight=5 max_fails=2 fail_timeout=10s;
server 192.168.1.101:81; weight=5 max_fails=2 fail_timeout=10s;
server 192.168.1.102:80; weight=5 max_fails=2 fail_timeout=10s;
}
server {
## IP o hostname de salida
listen 201.250.12.44:80;
server_name miservidor.com www.miservidor.com;
location / {
proxy_pass http://balanceador;
}
}
}
Lo mas importante y lo que nos compete son los dos últimos módulos que escribimos
- Código: Seleccionar todo
upstream balanceador {
server 192.168.1.100:81; weight=5 max_fails=2 fail_timeout=10s;
server 192.168.1.101:81; weight=5 max_fails=2 fail_timeout=10s;
server 192.168.1.102:80; weight=5 max_fails=2 fail_timeout=10s;
}
aquí definimos nuestros servidores, supongamos que 192.168.1.100 y 192.168.1.101 son los servidores IIS y 192.168.1.102 es el servidor apache. weight hace referencia a la cantidad de peticiones que recibirá ese servidor, o sea que a las 5 peticiones, la sexta se le pedirá al servidor siguiente. si no escribimos este parametro, el valor por defecto es 1.
En el caso de que uno de los servidores se caiga, el parametro max_fails es el que se encargará de deshabilitarlo, en este caso, si la conexión falla dos veces, ese servidor se dejará de utiliza, y en conjunto con esto va el timeout para ver cuanto tiempo esperamos al servidor.
- Código: Seleccionar todo
server {
## IP o hostname de salida
listen 201.250.12.44:80;
server_name miservidor.com www.miservidor.com;
location / {
proxy_pass http://balanceador;
}
}
Ahora definimos el hostname/ip para que ingrese el cliente y usamos proxy_pass para apuntar a los servidores que configuramos anteriormente.


