Skip to content
VDS · Windows Server

IIS: situs di Windows

Cara memasang web server IIS di VPS, menerbitkan situs pertama Anda di domain sendiri, menerbitkan sertifikat, dan menghindari tenggelam dalam log.

Diperbarui 23 Agustus 2026

IIS adalah web server bawaan Windows Server. IIS bekerja dengan baik untuk aplikasi ASP.NET, untuk konten statis, dan sebagai reverse proxy di depan layanan yang mendengarkan pada port lokal.

Instalasi

Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature Web-Asp-Net48, Web-Http-Redirect, Web-Dyn-Compression

Buka port di firewall:

New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

Periksa bahwa halaman awal terbuka di alamat mesin Anda dari "Overview" di panel /hosting/vds/m/<id>. Jika tidak, lihat Windows Firewall.

Situs pertama Anda

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) memungkinkan Anda menghosting beberapa situs pada satu alamat: IIS membedakannya berdasarkan domain. Domain harus mengarah ke alamat mesin Anda dengan record A.

Situs hanya memerlukan izin minimal pada direktori — read:

icacls C:\sites\example /grant "IIS AppPool\example:(OI)(CI)R" /T

Sertifikat HTTPS

Cara termudah untuk mendapatkan sertifikat gratis adalah klien win-acme: unduh wacs.exe, jalankan sebagai administrator, dan pilih situs Anda dari daftar — klien akan menerbitkan sertifikat, mengikatnya ke situs, dan membuat tugas pembaruan.

Untuk memeriksa binding:

Get-WebBinding -Name "example"
New-WebBinding -Name "example" -Protocol https -Port 443 -HostHeader "example.ru" -SslFlags 1

Untuk menerbitkan sertifikat, port 80 harus terbuka dari luar — validasi domain melalui port tersebut.

Aplikasi di belakang IIS

Jika layanan Anda (Node, Python, .NET Kestrel) mendengarkan pada 127.0.0.1:5000, pasang modul URL Rewrite dan Application Request Routing, aktifkan proxying, dan tambahkan berikut ini ke web.config situs:

<rule name="proxy" stopProcessing="true">
  <match url="(.*)" />
  <action type="Rewrite" url="http://127.0.0.1:5000/{R:1}" />
</rule>

Dengan begitu hanya IIS dengan sertifikat yang terekspos ke luar, dan aplikasi tetap di localhost.

Operasional

Get-Website | Select-Object Name, State, PhysicalPath
Restart-WebAppPool example
Get-WebAppPoolState

Log tersimpan di C:\inetpub\logs\LogFiles dan bertambah tanpa batas — pada disk 40 GB, ukurannya cepat membengkak. Atur rotasi di IIS Manager (bagian "Logging", file harian) dan hapus log lama dengan scheduled task:

Get-ChildItem C:\inetpub\logs\LogFiles -Recurse -File |
  Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) | Remove-Item -Force

Error umum

  • Error 500.19 — web.config rusak atau modul tidak ada. Penyebab pastinya terlihat pada teks error jika Anda mengaktifkan pesan detail untuk permintaan lokal.
  • Application pool berhenti sendiri. Perlindungan rapid-fail aktif: situs crash dan IIS mematikannya. Cari penyebabnya di application log (Get-WinEvent -LogName Application -MaxEvents 30).
  • Situs terbuka lewat alamat tetapi tidak lewat domain. Host header tidak cocok, atau DNS belum diperbarui.
  • 403 setelah publishing. Application pool tidak diberi izin pada direktori.

Jauhkan direktori situs Anda dari C:\inetpub dan letakkan di folder terpisah seperti C:\sites — itu memudahkan backup dan memungkinkan Anda menginstal ulang sistem tanpa kehilangan data.