Czym jest IIS? Serwer WWW Windows firmy Microsoft i alternatywy
Internet Information Services (IIS) to platforma serwera WWW firmy Microsoft dla systemu Windows. Odbiera żądania HTTP i HTTPS oraz obsługuje witryny internetowe, aplikacje internetowe i interfejsy API. Termin „Windows Web” jest czasami używany nieformalnie w odniesieniu do IIS; nie jest to oddzielny produkt serwerowy firmy Microsoft. Administratorzy mogą zarządzać IIS za pomocą graficznego Menedżera IIS, programu PowerShell, narzędzi wiersza poleceń i plików konfiguracyjnych.
W systemie Windows Server usługa IIS jest instalowana jako rola serwera WWW (IIS) . W obsługiwanych wersjach klienckich systemu Windows można ją włączyć jako funkcję opcjonalną, zazwyczaj na potrzeby lokalnego tworzenia oprogramowania lub testowania. Dostępne komponenty zależą od wersji i edycji systemu Windows, dlatego konfiguracji na komputerze deweloperskim nie należy traktować jako instrukcji wdrażania w środowisku produkcyjnym.
Ilustrowany układ Menedżera usług IIS pokazuje, gdzie administratorzy wybierają witrynę i uzyskują dostęp do typowych ustawień.
Co zapewnia IIS
IIS może obsługiwać pliki statyczne, takie jak HTML, arkusze stylów, skrypty i obrazy. Może również przekazywać żądania do aplikacji generujących zawartość dynamicznie. IIS korzysta z opcjonalnych modułów do zadań takich jak uwierzytelnianie, rejestrowanie, filtrowanie żądań, kompresja i przepisywanie adresów URL, umożliwiając administratorom włączenie elementów wymaganych przez aplikację.
Usługa IIS jest powszechnie używana w aplikacjach internetowych firmy Microsoft. Na przykład ASP.NET Core może działać z usługą IIS za pośrednictwem modułu ASP.NET Core; aktualna dokumentacja pakietu hostingu .NET firmy Microsoft wyjaśnia środowisko uruchomieniowe i moduły potrzebne do takiej konfiguracji. Inne technologie mogą działać za pośrednictwem dodatkowych modułów obsługi lub modułów, ale należy sprawdzić zgodność, konserwację i wsparcie bezpieczeństwa dla konkretnej aplikacji.
Konsola graficzna to jedno z głównych udogodnień IIS. Organizuje ona witryny, powiązania, pule aplikacji, moduły, ustawienia zabezpieczeń i logi w jednym miejscu. To samo środowisko można również zautomatyzować za pomocą programu PowerShell lub skonfigurować za pomocą plików, co ułatwia zespołom powtarzanie ustawień na wielu serwerach.
W jaki sposób IIS obsługuje żądanie sieciowe
W nowoczesnym serwerze IIS, stos HTTP systemu Windows (HTTP.sys) nasłuchuje przychodzącego ruchu HTTP i HTTPS. Usługi IIS i usługa aktywacji procesów systemu Windows (WAS) wykorzystują konfigurację serwera do kierowania żądań do odpowiedniej witryny i puli aplikacji. Następnie proces roboczy obsługuje żądanie i zwraca odpowiedź za pośrednictwem stosu HTTP. Przewodnik po architekturze IIS firmy Microsoft opisuje te komponenty i przepływ żądań.
Pula aplikacji grupuje jedną lub więcej aplikacji internetowych w ramach ustawień procesów roboczych. Oddzielne pule tworzą granice procesów, które mogą zapobiec bezpośredniemu wpływowi problemu w jednej aplikacji na aplikacje w innej puli. Nie izolują one obciążeń od współdzielonego systemu operacyjnego serwera, procesora, pamięci ani przepustowości sieci, dlatego nadal konieczne jest monitorowanie wykorzystania zasobów i uprawnień.
Koncepcyjny przepływ żądania: HTTP.sys otrzymuje żądanie przeglądarki, IIS kieruje je do puli aplikacji, a proces roboczy zwraca odpowiedź.
Kiedy IIS ma sens?
Wybierz IIS, jeśli Twoja aplikacja już korzysta z systemu Windows Server, ASP.NET, uwierzytelniania systemu Windows lub konfiguracji specyficznej dla usługi IIS albo jeśli Twój zespół jest w stanie administrować serwerami Windows.
Rozważ użycie innego serwera, jeśli potrzebujesz wdrożenia Linux First, wolisz konfigurację opartą na plikach lub chcesz mieć odwrotny serwer proxy z innym modelem operacyjnym.
Użyj IIS Express do lekkiego lokalnego tworzenia oprogramowania i testowania, gdy pełna instalacja na serwerze nie jest konieczna. Microsoft opisuje go jako wersję zorientowaną na rozwój, a nie jako ogólny zamiennik hostingu produkcyjnego.
IIS to składnik systemu Windows, a nie oddzielnie kupowana licencja serwera WWW na daną witrynę lub użytkownika. Jednak do wdrożenia mogą mieć zastosowanie licencja i zasady dostępu systemu Windows Server. Firma Microsoft informuje, że do uzyskania dostępu do oprogramowania systemu Windows Server może być wymagana licencja dostępu klienta (CAL); należy zapoznać się z oficjalnymi wytycznymi dotyczącymi licencji CAL oraz warunkami dotyczącymi konkretnej umowy hostingowej.
Alternatywy dla IIS do rozważenia
Nie ma uniwersalnego „najlepszego” serwera WWW. Porównaj platformę, której potrzebuje Twoja aplikacja, preferowany sposób konfiguracji usług przez Twój zespół oraz to, czy serwer musi hostować aplikację bezpośrednio, czy kierować ruch do innego procesu.
Porównanie koncepcji interfejsu: IIS korzysta z konsoli Windows, natomiast Apache i NGINX są często konfigurowane za pośrednictwem plików tekstowych.
Opcja
Dobrze pasuje, gdy
Kompromis do rozważenia
Serwer HTTP Apache
Potrzebujesz modułowego serwera z otwartym kodem źródłowym, rozbudowanymi opcjami konfiguracji i obszerną dokumentacją platformy.
Liczne moduły i dyrektywy zapewniają elastyczność, ale wymagają od administratorów zrozumienia i utrzymania konfiguracji. Zapoznaj się z dokumentacją serwera Apache HTTP .
NGINX
Potrzebujesz serwera WWW, który może również działać jako odwrotny serwer proxy lub moduł równoważenia obciążenia HTTP przed usługami aplikacji.
Jest konfigurowany za pomocą plików tekstowych i zazwyczaj kieruje dynamiczne żądania do oddzielnego procesu aplikacji. Zapoznaj się z oficjalną dokumentacją NGINX .
Caddy
Potrzebujesz zwięzłej konfiguracji oraz automatycznego dostarczania i odnawiania certyfikatów HTTPS dla kwalifikujących się publicznych nazw hostów.
W przypadku istniejącej aplikacji Windows, pozostawienie serwera IIS może być najprostszym rozwiązaniem, jeśli serwer jest obsługiwany i bezpiecznie utrzymywany. W przypadku nowego projektu należy wybrać wymagania platformy aplikacji i narzędzia operacyjne, z których Twój zespół może korzystać niezawodnie. Przed przeniesieniem działającej witryny z jednego serwera na drugi należy przetestować uwierzytelnianie, reguły adresów URL, certyfikaty, rejestrowanie i sposób wdrażania.
Podsumowanie
IIS to konfigurowalny serwer WWW firmy Microsoft dla systemu Windows, z konsolą zarządzania i modelem puli aplikacji, które pasują do wielu witryn i usług hostowanych w systemie Windows. Serwer Apache HTTP, NGINX i Caddy to wiarygodne alternatywy, jeśli ich platformy lub modele operacyjne lepiej pasują do projektu. Wybierz opcję w oparciu o zgodność aplikacji, potrzeby administracyjne oraz wymagania dotyczące licencji i wsparcia dla całego środowiska.