Construyendo IIS Web Farm con Load Balancing usando Nginx – informaticamadridmayor

Este artículo describe cómo crear una granja de servidores web con equilibrio de carga en Internet Information Services (IIS) 8.0 y versiones posteriores. El equilibrio de carga entre los servidores web de la granja no se implementará mediante la extensión estándar para IIS Enrutamiento de solicitudes de aplicaciones (ARR), pero utilizando un proxy inverso/HTTP de código abierto Nginx.

Nginx es un servidor HTTP simple, rápido y confiable. Nginx se usa principalmente para sitios web estáticos y como proxy frontal antes de sitios dinámicos de alta carga. Nginx está diseñado con el propósito de procesar rápidamente las solicitudes y es capaz de atender solicitudes estáticas, realizar funciones de almacenamiento en caché de proxy y equilibrio de carga simple.

Propina. Las principales desventajas del enrutamiento de solicitudes de aplicaciones es que no puede monitorear las respuestas HTTP de varios sitios y requiere una licencia adicional de Windows.

Creación de una granja web de IIS

En nuestro ejemplo, la granja web de IIS consta de dos servidores IIS basados ​​en Windows Server 2012 R2 y un servidor front-end Linux con Nginx. Si es necesario, puede escalar fácilmente este esquema agregando cualquier cantidad de servidores IIS adicionales. Nginx puede ocultar detrás de sí mismo 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.

En primer lugar, es necesario instalar la función IIS en ambos servidores de Windows. Puede hacerlo desde la consola del Administrador del servidor o mediante PowerShell:

import-module servermanager
Install-WindowsFeature -Name Web-Server, Web-Mgmt-Tools

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

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

es sitio

Dar el Todos Permisos de control total del grupo en ambos recursos compartidos de red.

permisos de configuración iis

A continuación, necesitamos instalar la extensión. Ayudante de ARR en ambos servidores. Esta extensión es necesaria para registrar las direcciones IP correctas de los visitantes en los encabezados de IIS; de lo contrario, siempre se les dará una dirección Nginx. Esta extensión es parte de la Paquete de enrutamiento de solicitud de aplicación IIS (ARR) 3.0 y se puede copiar manualmente desde el directorio %ProgramFiles%IISApplication Solicitar enrutamientorequestrouterhelper_x64.msi.

Una vez instalado el IIS, debe copiar el contenido de una carpeta c:inetpubwwwroot a una carpeta de red srv1iis_sitio. Después de eso, vaya a la consola de administración de IIS, seleccione DefaultWebSite, vaya a Configuración básica y especifique la ruta de red a la carpeta del sitio.

editar sitio

Ahora seleccione el servidor y navegue hasta el Configuración compartida sección y haga clic en Exportar configuración.

es una configuración compartida

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.

configuración de exportación iis

Luego seleccione «Habilitar configuración compartida» e ingrese la ruta a la carpeta con la configuración de IIS. Hacer clic Solicitar e ingrese la contraseña.

es ubicación compartida

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

credencial anónima

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

Continúe con su segundo servidor. No olvides instalar ARRhelper y conectar la configuración compartida de la misma forma que lo hiciste con el primer servidor.

Terminamos de configurar la configuración de IIS, ahora procedemos a configurar de Nginx. Instale Nginx usando el comando:

sudo apt-get install nginx

Después de la instalación, edite el archivo de configuración /etc/nginx/sitios habilitados/predeterminado

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

#your web server address

    upstream web_servers {

        server 10.1.10.13;

        server 10.1.10.14;

        }

 #listen port

    server {

        listen 80;

        location / {

                proxy_pass http://your_site.name;

                # headers setting

                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;

                # Errors, on which nginx try to go to the next server

                proxy_next_upstream     error timeout invalid_header http_500 http_404;

                proxy_set_header X-Client-IP $remote_addr;

                }

        }

Reiniciar Nginx:

sudo /etc/init.d/nginx restart

Eso es todo, puede intentar registrarse en el DNS para la dirección de su sitio web de su Nginx y visitar el sitio. Verá que las solicitudes provienen de un servidor diferente (en este caso, se usa el equilibrio por turnos predeterminado).

Deja un comentario

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