Terheléselosztás az IIS-kiszolgálók között az Nginx használatával

A hivatalos MSFT megoldás a terheléselosztáshoz a Windows webszerverek között egy IIS farmban a kiterjesztés Alkalmazáskérési útválasztás (ARR). Ebben a cikkben megvizsgáljuk azt a sémát, amelyben az Internet Information Services webszerverek (IIS 8.0 vagy újabb verzió) közötti terheléselosztóként a jól bevált HTTP / reverse Nginx proxy kerül felhasználásra..

nginx Ez egy egyszerű, gyors és megbízható HTTP szerver. Az Nginx használata elsősorban statikus webhelyeknél és fordított proxyként javasolható a magasan betöltött dinamikus webhelyek előtt. Az Nginx lehetővé teszi a statikus kérelmek gyors feldolgozását, a proxy gyorsítótárazásának végrehajtását és az egyszerű terheléselosztási funkciók megvalósítását.

tanács. Az Application Request Routing (ARR) fő hátránya az Nginx-hez képest, hogy nem engedi nyomon követni több webhely HTTP kéréseit, és további licencre van szüksége a Windows rendszerhez.

Példánkban a web farm két IIS szerverből áll, amelyek a Windows Server 2012 alapúak. A Linux szerver, amelyre Nginx van telepítve, előtér-kiszolgálóként fog működni. Szükség esetén ez a konfiguráció könnyen méretezhető a szükséges számú IIS-kiszolgáló hozzáadásával. A Nginx képes sok háttér-webszervert elrejteni maga mögött, és különféle szabályok segítségével elosztja a kérelmeket közöttük. Bármely IIS-kiszolgáló hozzáadása vagy eltávolítása egy ilyen farmból nem befolyásolja a webhely elérhetőségét a felhasználók szempontjából.

Konfigurálja a webkiszolgálókat az IIS Farmban

Mindenekelőtt telepítenie kell az IIS szerepet mindkét Windows webkiszolgálóra. A feladat a konzol segítségével történik. Szerver menedzser vagy velük PowerShell:

import-modul kiszolgálókezelő
Telepítés-WindowsFeature -Név Web-szerver, Web-Mgmt-Tools

Külön kiszolgálón, a Windows fájlkiszolgálón, hozzon létre két hálózati mappát:

  • Az első az általános IIS-konfigurációt tárolja - \\ file-srv1 \ iis_config
  • Másodszor - webhely fájlok - \\ fájl-srv1 \ iis_site

A két nyilvános mappa engedélyében adjon hozzá egy csoportot mindenki teljes ellenőrzési jogokkal.

Ezután mindkét oldalon telepítenie kell a kiterjesztést ARR Helper, amely lehetővé teszi a helyes látogató címek használatát az IIS fejlécekben (egyébként ott mindig az Nginx kiszolgáló IP-címét kell megadni). Ez a kiterjesztés a IIS alkalmazás-igénylés útválasztási csomag (ARR) 3.0 és az utóbbi bármely kiszolgálóra telepítése után a terjesztése requestrouterhelper_x64.msi manuálisan másolható a% ProgramFiles% \ IIS \ Application Request Routing könyvtárból.

Az IIS telepítése után másolja a c: \ inetpub \ wwwroot könyvtár tartalmát a \\ file-srv1 \ iis_site hálózati mappába. Ezt követően az IIS felügyeleti konzolban válassza ki a DefaultWebSite webhelyet, és nyissa meg annak beállításait (Alapbeállítások) megadásával a mezőben Fizikai út hálózati mappa elérési útja.

Konfigurálja a weboldalt az Ön igényei szerint, ellenőrizze, hogy megnyílik-e és megfelelően működik-e. Ezután nyissa meg a részt Megosztott konfiguráció és kattintson a gombra Export konfiguráció.

Adja meg a hálózati mappa teljes elérési útját, ahol az IIS konfigurációt tárolni fogja, és adja meg a titkosítási kulcsok jelszavát.

Engedélyezés A megosztott konfiguráció engedélyezése, és adja meg a hálózati megosztás elérési útját az IIS konfigurációval. Kattintson az Alkalmaz gombra, és írja be a jelszót.

Ezután adja meg azt a fiókot, amely alatt az IIS-készletet el kell indítani. Ezenfelül ennek a fióknak RW jogokkal kell rendelkeznie a korábban leírt hálózati könyvtárak eléréséhez (általában speciális tartományszolgáltatási rekordot vagy gMSA csoportszolgáltatási fiókot használnak). Ehhez nyissa meg az IIS hitelesítés szakaszt, és módosítsa az Anonim hitelesítés beállításait felhasználónévvel.

Próbálja meg megnyitni a webhelyet. Ha minden működik, folytassa a következő lépéssel..

Most ugyanúgy kell konfigurálnia a második kiszolgálót. Telepítse az ARRhelper szoftvert, csatlakoztassa az általános IIS-konfigurációt egy hálózati mappából, adja meg a fiókot a készlet elindításához.

A terheléselosztás konfigurálása az Nginx-en

Miután az IIS webszerverek konfigurálása befejeződött, folytathatja az Nginx konfigurálását.

Telepítse az nginx parancsot:
sudo apt-get install nginx
A telepítés után szerkessze a konfigurációs fájlt / etc / nginx / site-engedélyezve / alapértelmezett

Esetünkben a következő konfigurációt kaptuk:

# azon IIS webkiszolgálók listája, amelyek között meg kell osztani a terhelést
upstream web_servers
szerver 192.168.1.13;
szerver 192.168.1.14;

# port
szerver
figyelj 80;
hely /
proxy_pass http://winitpro.ru;
# a fejlécek testreszabása
proxy_set_header X-proxy 192.168.1.12;
proxy_set_header Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forward-For $ remote_addr;
proxy_set_header X-Forward-Proto $ séma;
# Hibák, amelyek során az nginx átkapcsol a következő szerverre
proxy_next_upstream hiba időtúllépése érvénytelen_header http_500 http_404;
proxy_set_header X-Client-IP $ remote_addr;

Mentse el a fájlt és indítsa újra az nginx fájlt:

sudo /etc/init.d/nginx újraindítás

A webhelyek DNS-rekordjait úgy kell konfigurálni, hogy azok az nginx szerver IP-címére mutatjanak, és ellenőrizze, hogy a kérelmeket a kerek robin algoritmus segítségével elosztják-e a webszerverek között..