Skip to content
VDS · Windows Server

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.config ili 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:\inetpub i u zasebnom folderu kao što je C:\sites — tako su bekapi lakši i možeš da reinstaliraš sistem bez gubitka podataka.