IIS (Internet Information Services)
Teoria
- IIS to serwer WWW firmy Microsoft wbudowany w Windows Server
- Obsługuje protokoły HTTP (port 80) i HTTPS (port 443)
- Obsługuje też FTP (port 21)
- Witryna (Site) – logiczny kontener z ustawieniami (porty, certyfikaty, katalog główny)
- Pula aplikacji (Application Pool) – izolowany proces obsługujący jedną lub więcej aplikacji
- Katalog główny (Document Root) – domyślnie C:\inetpub\wwwroot
- Katalog wirtualny – alias wskazujący na inny katalog fizyczny
- Domyślny dokument: index.html, index.htm, default.htm, default.asp
Instalacja roli IIS (PowerShell)
- Install-WindowsFeature -Name Web-Server -IncludeManagementTools – instalacja IIS z konsolą zarządzania
- Install-WindowsFeature -Name Web-Server,Web-Ftp-Server -IncludeManagementTools – instalacja IIS z FTP
Zarządzanie witrynami (PowerShell – moduł WebAdministration)
- Import-Module WebAdministration – ładuje moduł do zarządzania IIS
- Get-Website – lista witryn
- New-Website -Name "MojaStrona" -PhysicalPath "C:\strony\mojstrona" -Port 80 – tworzy nową witrynę
- Start-Website -Name "MojaStrona" – uruchamia witrynę
- Stop-Website -Name "MojaStrona" – zatrzymuje witrynę
- Remove-Website -Name "MojaStrona" – usuwa witrynę
- Set-WebBinding -Name "MojaStrona" -BindingInformation "*:8080:" -PropertyName Port -Value 8080 – zmienia port witryny
Zarządzanie pulami aplikacji (PowerShell)
- Get-WebConfiguration system.applicationHost/applicationPools/add – lista pul
- New-WebAppPool -Name "MojaPula" – tworzy nową pulę aplikacji
- Start-WebAppPool -Name "MojaPula" – uruchamia pulę
- Stop-WebAppPool -Name "MojaPula" – zatrzymuje pulę
- Restart-WebAppPool -Name "MojaPula" – restartuje pulę (np. po zmianie konfiguracji)
Konfiguracja HTTPS (certyfikat SSL)
- Certyfikat można wygenerować samopodpisany lub pobrać od CA (Certificate Authority)
- New-SelfSignedCertificate -DnsName "domena.local" -CertStoreLocation "Cert:\LocalMachine\My" – generuje certyfikat samopodpisany
- Następnie w IIS Manager: witryna → Bindings → Add → HTTPS → wybierz certyfikat
- Lub przez PowerShell: New-WebBinding -Name "MojaStrona" -Protocol https -Port 443
FTP w IIS
- New-WebFtpSite -Name "MojFTP" -PhysicalPath "C:\ftp" -Port 21 – tworzy witrynę FTP
- FTP pasywny wymaga otwarcia zakresu portów w zaporze (domyślnie 1024–65535)
- Uwierzytelnianie: podstawowe (login + hasło) lub anonimowe
- Port FTP: 21 (sterowanie), dane: 20 (tryb aktywny) lub losowy (tryb pasywny)
Katalogi wirtualne i uprawnienia
- New-WebVirtualDirectory -Site "Default Web Site" -Name "pliki" -PhysicalPath "D:\zasoby" – tworzy katalog wirtualny
- Konto IUSR – anonimowy użytkownik IIS; musi mieć uprawnienia do odczytu katalogu strony
- Konto IIS_IUSRS – grupa procesów roboczych IIS; musi mieć uprawnienia do katalogu aplikacji
- icacls "C:\strony\mojstrona" /grant "IIS_IUSRS:(RX)" – nadaje uprawnienia do odczytu i wykonywania
Diagnostyka
- Logi IIS: C:\inetpub\logs\LogFiles\
- Get-EventLog -LogName Application -Source "IIS*" – zdarzenia IIS w dzienniku zdarzeń
- netstat -ano | findstr :80 – sprawdza, czy port 80 jest zajęty
- iisreset – restartuje cały serwis IIS (ostrożnie na produkcji)
- iisreset /stop i iisreset /start – zatrzymanie i start