IIS: sajt na Windowsu
Kako da instaliraš IIS web server na VPS, objaviš svoj prvi sajt na sopstvenom domenu, izdaš sertifikat i izbegneš da se udaviš u logovima.
Ažurirano 23. avgust 2026.
IIS je ugrađeni veb server Windows Servera. Dobro radi za ASP.NET aplikacije, za statički sadržaj i kao reversni proksi ispred servisa koji sluša na lokalnom portu.
Instalacija
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature Web-Asp-Net48, Web-Http-Redirect, Web-Dyn-Compression
Otvori portove u firewall-u:
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Proveri da li se početna strana otvara na adresi tvoje mašine iz „Pregleda“ u panelu /hosting/vds/m/<id>. Ako neće, pogledaj Windows Firewall.
Tvoj prvi sajt
Import-Module WebAdministration
New-Item -ItemType Directory C:\sites\example
Set-Content C:\sites\example\index.html "<h1>It works</h1>"
New-WebAppPool -Name "example"
New-Website -Name "example" -Port 80 -HostHeader "example.ru" `
-PhysicalPath "C:\sites\example" -ApplicationPool "example"
Host header (-HostHeader) ti omogućava da hostuješ više sajtova na jednoj adresi: IIS ih razlikuje po domenu. Domen mora da pokazuje na adresu tvoje mašine preko A zapisa.
Sajtu su potrebne samo minimalne dozvole na direktorijumu — čitanje:
icacls C:\sites\example /grant "IIS AppPool\example:(OI)(CI)R" /T
HTTPS sertifikat
Najlakši način da dobiješ besplatan sertifikat je win-acme klijent: preuzmi wacs.exe, pokreni ga kao administrator i izaberi svoj sajt sa liste — izdaće sertifikat, povezati ga sa sajtom i napraviti zadatak za obnovu.
Da proveriš bindings:
Get-WebBinding -Name "example"
New-WebBinding -Name "example" -Protocol https -Port 443 -HostHeader "example.ru" -SslFlags 1
Za izdavanje sertifikata port 80 mora biti otvoren spolja — validacija domena ide preko njega.
Aplikacija iza IIS-a
Ako tvoj servis (Node, Python, .NET Kestrel) sluša na 127.0.0.1:5000, instaliraj module URL Rewrite i Application Request Routing, uključi proksiranje i dodaj sledeće u web.config sajta:
<rule name="proxy" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://127.0.0.1:5000/{R:1}" />
</rule>
Tako je spolja izložen samo IIS sa sertifikatom, a aplikacija ostaje na localhost-u.
Održavanje
Get-Website | Select-Object Name, State, PhysicalPath
Restart-WebAppPool example
Get-WebAppPoolState
Logovi se nalaze u C:\inetpub\logs\LogFiles i rastu bez ograničenja — na disku od 40 GB to se brzo nakupi. Podesi rotaciju u IIS Manager-u (sekcija „Logging“, dnevni fajlovi) i briši stare logove zakazanim zadatkom:
Get-ChildItem C:\inetpub\logs\LogFiles -Recurse -File |
Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) | Remove-Item -Force
Česte greške
- Greška 500.19 — oštećen
web.configili modul koji nedostaje. Tačan uzrok se vidi u tekstu greške ako uključiš detaljne poruke za lokalne zahteve. - Application pool se sam zaustavlja. Uključila se rapid-fail zaštita: sajt puca i IIS ga gasi. Potraži uzrok u application log-u (
Get-WinEvent -LogName Application -MaxEvents 30). - Sajt se otvara preko adrese, ali ne preko domena. Host header se ne poklapa ili se DNS još nije ažurirao.
- 403 posle objavljivanja. Application pool-u nisu dodeljene dozvole na direktorijumu.
Drži direktorijume sajtova van
C:\inetpubi u zasebnom folderu kao što jeC:\sites— tako su bekapi lakši i možeš da reinstaliraš sistem bez gubitka podataka.