Toto rozšíření představuje oficiální řešení MSFT pro vyrovnávání zatížení mezi webovými servery Windows ve farmě IIS Směrování žádostí o aplikaci (ARR). V tomto článku se budeme zabývat schématem, ve kterém se jako vyrovnávač zatížení mezi webovými servery Internet Information Services (IIS verze 8.0 a vyšší) použije osvědčený proxy HTTP / reverzní Nginx.
Nginx Je to jednoduchý, rychlý a spolehlivý HTTP server. Používání Nginx je vhodné především pro statické weby a jako reverzní proxy před vysoce zatíženými dynamickými weby. Nginx umožňuje rychle zpracovávat statické požadavky, provádět ukládání do vyrovnávací paměti proxy a implementovat jednoduché funkce vyvažování zátěže.
Tip. Hlavní nevýhodou směrování žádostí o aplikaci (ARR) ve srovnání s Nginx je to, že vám neumožňuje sledovat požadavky HTTP pro více webů a vyžaduje další licenci pro Windows.V našem příkladu se webová farma skládá ze dvou serverů IIS založených na systému Windows Server 2012. Linuxový server s nainstalovaným serverem Nginx bude fungovat jako server front-end. V případě potřeby lze tuto konfiguraci snadno upravit přidáním požadovaného počtu serverů IIS. Nginx dokáže skrýt mnoho backendových webových serverů za sebou a distribuovat požadavky mezi nimi pomocí různých pravidel. Přidání nebo odebrání jakéhokoli serveru IIS z takové farmy neovlivní dostupnost webu z pohledu uživatelů.
Konfigurace webových serverů ve farmě IIS
Nejprve musíte nainstalovat roli IIS na obou webových serverech Windows. Úloha se provádí pomocí konzoly. Správce serveru nebo s Powerhell:
import-modul servermanager
Install-WindowsFeature - Název Web-Server, Web-Mgmt-Tools
Na samostatném serveru, souborovém serveru Windows, vytvořte dvě síťové složky:
- První uloží obecnou konfiguraci služby IIS - \\ file-srv1 \ iis_config
- Za druhé - soubory webu - \\ file-srv1 \ iis_site
V oprávnění obou veřejných složek přidejte skupinu Všichni s právy plné kontroly.
Poté na oba weby musíte nainstalovat rozšíření ARR Helper, což vám umožní použít správné adresy návštěvníků v záhlaví služby IIS (v opačném případě bude vždy uvedena adresa IP serveru s Nginx). Toto rozšíření je součástí Směrovací balíček IIS Application Routing (ARR) 3.0 a po instalaci posledně uvedeného na libovolný server, jeho distribuce requestrouterhelper_x64.msi lze ručně zkopírovat z adresáře% ProgramFiles% \ IIS \ Application Request Routing.
Po instalaci služby IIS zkopírujte obsah adresáře c: \ inetpub \ wwwroot do síťové složky \\ file-srv1 \ iis_site. Poté v konzole pro správu služby IIS vyberte web DefaultWebSite a otevřete jeho nastavení (Základní nastavení) zadáním do pole Fyzická cesta cesta síťové složky.
Nakonfigurujte web v souladu s vašimi požadavky, ověřte, zda se otevírá a funguje správně. Poté otevřete sekci Sdílená konfigurace a klikněte na tlačítko Export konfigurace.
Zadejte úplnou cestu k síťové složce, do které bude uložena konfigurace služby IIS, a zadejte heslo pro šifrovací klíče.
Povolit možnost Povolit sdílenou konfiguraci, a určete cestu k síťové sdílené položce s konfigurací IIS. Klikněte na Použít a zadejte heslo.
Poté určete účet, pod kterým má být fond IIS spuštěn. Navíc tento účet musí mít také práva RW pro přístup k dříve popsaným síťovým adresářům (zpravidla se používá speciální záznam služby domény nebo účet služby skupiny GMSA). Chcete-li to provést, otevřete sekci ověřování IIS a změňte nastavení anonymní ověřování uživatelským jménem.
Zkuste otevřít web. Pokud všechno funguje, přejděte k dalšímu kroku..
Nyní musíte nakonfigurovat druhý server stejným způsobem. Nainstalujte ARRhelper, připojte obecnou konfiguraci IIS ze síťové složky, zadejte účet pro spuštění fondu.
Konfigurace vyrovnávání zatížení na Nginxu
Po dokončení konfigurace webových serverů IIS můžete pokračovat v konfiguraci Nginx.
Instalujte nginx příkazem:sudo apt-get install nginx
Po instalaci upravte konfigurační soubor / etc / nginx / sites-enabled / default
V našem případě jsme dostali následující konfiguraci:
# seznam webových serverů IIS, mezi nimiž musíte distribuovat zatížení
upstream web_servers
server 192.168.1.13;
server 192.168.1.14;
# port
server
poslouchat 80;
umístění /
proxy_pass http://winitpro.ru;
# přizpůsobení záhlaví
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-Forwarded-For $ remote_addr;
proxy_set_header Schéma X-Forwarded-Proto $;
# Chyby, ve kterých by nginx měl přejít na další server
časový limit chyby proxy_next_upstream timeout invalid_header http_500 http_404;
proxy_set_header X-Client-IP $ remote_addr;
Uložte soubor a restartujte nginx:
sudo /etc/init.d/nginx restart
Zbývá nakonfigurovat záznamy DNS webů tak, aby směřovaly na IP adresu serveru nginx a zajistily, aby požadavky byly distribuovány mezi webovými servery pomocí algoritmu round robin..