Construyendo la granja web de IIS con balanceo de carga usando Nginx

Este artículo describe cómo crear una granja web con balanceo de carga en los Servicios de Información de Internet (IIS) 8.0 y superiores. El balanceo de carga entre los servidores Web de la granja no se implementará mediante la extensión estándar para IIS – Application Request Routing (ARR), sino utilizando un proxy HTTP/reverse de código abierto Nginx.

Nginx es un simple, rápido y fiable servidor HTTP. Nginx se usa principalmente para sitios web estáticos y como proxy frontal antes de los sitios dinámicos de alta carga. Nginx está diseñado con el propósito de procesar rápidamente las solicitudes y es capaz de servir solicitudes estáticas, realizar caching de proxy y funciones simples de balanceo de carga.

Punta . La principal desventaja del Application Request Routing es que no puede monitorear las respuestas HTTP de varios sitios y requiere una licencia adicional de Windows.

Construyendo la granja web del IIS

En nuestro ejemplo, la granja web de IIS consiste en dos servidores IIS basados en Windows Server 2012 R2 y en un servidor Linux frontal con Nginx. Si es necesario, se puede escalar fácilmente este esquema añadiendo cualquier número de servidores IIS adicionales. Nginx puede esconder detrás de sí un centenar de servidores web (backend) y consultas distribuidas en un amplio conjunto de reglas entre ellos. Desconectar cualquiera de los servidores IIS no afectará la disponibilidad del sistema.

LEER TAMBIÉN Cómo instalar phpMyAdmin en IIS en Windows 10 o Windows Server 2016?

En primer lugar, es necesario instalar el papel de IIS en ambos servidores de Windows. Puede hacer esto desde la consola del Administrador de Servidores o usando PowerShell:

import-module servermanager
Instalación de WindowsFeature -Nombre Servidor Web, Herramientas de Gestión Web

Necesitamos un servidor de archivos Windows separado en el que se encuentren dos carpetas de red:

  • El primero almacenará la configuración de IIS – srv1iis_config
  • el segundo – sitefiles – srv1iis_site

Dale al grupo Todos permisos de control total en las dos redes compartidas.

A continuación tenemos que instalar la extensión ARR Helper en ambos servidores. Esta extensión es necesaria para registrar las direcciones IP correctas de los visitantes de las cabeceras del IIS, de lo contrario siempre se les dará una dirección Nginx. Esta extensión es parte del paquete IIS Application Request Routing package (ARR) 3.0 y puede ser copiado manualmente desde el directorio %ProgramFiles%IISApplication Request Routingrequestrouterhelper_x64.msi .

Una vez instalado el IIS, es necesario copiar el contenido de una carpeta c:inetpubwwwroot a una carpeta de red srv1iis_site . Después de eso, vaya a la consola de administración de IIS, seleccione el sitio web predeterminado, vaya a la configuración básica y especifique la ruta de red a la carpeta del sitio.

Ahora selecciona el servidor y navega a la sección Configuración compartida y haz clic en Exportar configuración .

Especifique la ruta de red completa a la carpeta de red con la configuración de IIS y luego especifique una contraseña para las claves de cifrado.

LEE TAMBIÉN Cómo ocultar una OU específica en el Directorio Activo?

Luego seleccione «Habilitar configuración compartida» e introduzca la ruta de la carpeta con la configuración del IIS. Haz clic en Aplicar e introduce la contraseña.

A continuación hay que especificar el usuario en cuyo nombre se inician los grupos de aplicaciones y quién tiene acceso a nuestras carpetas de la red. Para ello, vaya a la sección de Autenticación, y cambie la autenticación anónima. Puede seleccionar una identidad de grupo de aplicaciones o puede seleccionar un usuario del dominio.

Ahora intente abrir su sitio, si tiene éxito – puede continuar.

Proceda a su segundo servidor. No olvides instalar ARRhelper, y conectar la configuración compartida de la misma manera que lo hiciste con el primer servidor.

Terminamos de configurar el IIS, ahora procedemos a configurar el Nginx. Instalar Nginx usando el comando:

sudo apt-get install nginx

Después de la instalación, edite el archivo de configuración /etc/nginx/sites-enabled/default

En nuestro caso, la configuración es la siguiente:

# su dirección de servidor web
upstream web_servers {
servidor 10.1.10.13;
servidor 10.1.10.14;
}
#Escucha el puerto
servidor {
Escuchen 80;
ubicación / {
proxy_pass http://your_site.name;
# Configuración de los encabezados
proxy_set_header X-proxy 10.1.10.12;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
# Errores, en los cuales nginx intenta ir al siguiente servidor
proxy_next_upstream error timeout invalid_header http_500 http_404;
proxy_set_header X-Client-IP $remote_addr;
}
}

Reinicie Nginx:

sudo /etc/init.d/nginx restart

Eso es todo, puedes intentar registrarte en el DNS para la dirección de tu sitio web de tu Nginx y visitar el sitio. Verás que las peticiones vienen en un servidor diferente (en este caso, el balance de round robin utilizado por defecto).

LEER TAMBIÉN Cómo convertir EXE en MSI?

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.