Windows Server 2025 / Mengatur binding IIS dan application pool untuk dua situs

Binding IIS memilih situs berdasarkan protokol, alamat IP, port, dan nama host. Application pool mengatur eksekusi serta identitas aplikasi di dalamnya; DNS, binding, folder konten, dan pool harus sesuai agar halaman yang benar diterima.

Bedakan empat lapisan konfigurasi

Lapisan Tujuan Contoh lab
DNS Mengubah nama menjadi alamat IP. web.lab.example.test → 172.24.50.30
Binding IIS Memilih situs untuk permintaan. http / 172.24.50.30 / 8080 / web.lab.example.test
Jalur fisik Menentukan lokasi konten. C:\Sites\LabSite
Application pool Mengatur proses eksekusi dan identitas. LabSitePool

Catatan DNS menerjemahkan nama menjadi alamat, tetapi tidak membuat binding IIS; membuat binding juga tidak mendaftarkan nama DNS. Referensi binding IIS menjelaskan protokol dan informasi IP, port, serta host. Periksa kombinasi yang sudah ada pada semua situs sebelum menambah atau mengedit. Nama tampilan situs yang berbeda saja tidak menghindari konflik.

Mulai dari LabSite yang sudah berfungsi pada WEB1 di 172.24.50.30:8080, foldernya, dan LabSitePool. Gunakan klien yang sama yang diizinkan serta aturan lab TCP 8080 yang sudah dibatasi. Pada WEB1, catat binding lengkap, jalur, pool, dan status sebelum perubahan; bekerja sebagai administrator. Pada DC1 gunakan hak administrasi DNS yang sesuai. Hanya web.lab.example.test dan status.lab.example.test yang ditambahkan di lab, tanpa mengubah DNS publik atau situs produksi. Bila StatusSite, folder, pool, atau catatannya sudah ada, identifikasi tujuannya dan berhenti sebelum menggantinya.

Tambahkan dan periksa nama DNS

  1. Pada DC1 buka DNS Manager → Forward Lookup Zones → lab.example.test. Pastikan ini zona latihan yang sudah ada pada server itu, bukan ad.example.test.
  2. Periksa apakah web sudah ada sebagai A, alias, atau catatan lain. Jika nama bebas, buat New Host (A) bernama web dengan 172.24.50.30. Jangan menimpa nilai lain; PTR tidak diperlukan untuk akses HTTP ini.
  3. Ulangi pemeriksaan dan buat status dengan alamat yang sama. Catat kedua nama dan nilainya sebagai objek uji milik sendiri.
  4. Pastikan CLIENT1 memakai DC1, 172.24.50.10, untuk DNS internal. Server yang ditentukan secara eksplisit di PowerShell dapat berbeda dari resolver yang dipakai browser.
  5. Dari CLIENT1 kueri kedua nama dan periksa catatan alamat yang dikembalikan. Jika gagal atau alamat berbeda, perbaiki DNS dahulu tanpa mengubah binding untuk menutupinya.
Resolve-DnsName web.lab.example.test -Server 172.24.50.10
Resolve-DnsName status.lab.example.test -Server 172.24.50.10

Parameter Server pada Resolve-DnsName menentukan DNS yang ditanya. Kedua nama diharapkan memberikan jawaban A 172.24.50.30. Tanpa Type, perintah secara bawaan menanyakan A dan AAAA; jangan mengarang jawaban IPv6 pada lab yang hanya memakai IPv4. Kueri eksplisit ini tidak membuktikan browser memakai DC1. Periksa juga konfigurasi klien dan resolusi nama biasanya sebelum menguji HTTP.

lab.example.test adalah zona DNS latihan kursus, berbeda dari domain Active Directory ad.example.test. Zona berbasis file tidak otomatis direplikasi ke DC2 hanya karena server menjadi pengontrol domain. Jika zona tidak ada, periksa DC1 dan konfigurasi yang direncanakan. Jangan menambah catatan di zona AD karena namanya mirip atau mengganti jenis penyimpanan zona hanya untuk melanjutkan.

Beri situs pertama binding nama host

  1. Di IIS Manager → LabSite → Bindings pilih tepat http / 172.24.50.30 / 8080 dengan host name kosong. Catat nilai sebelum mengedit.
  2. Ubah hanya host name menjadi web.lab.example.test lalu konfirmasi. Pertahankan IP, port, tipe, jalur, dan pool situs.
  3. Tinjau binding sesudah perubahan dan pastikan tidak ada kombinasi lengkap yang sama. Jangan menambah salinan tanpa nama host yang tidak diperlukan.
  4. Pada CLIENT1 buka http://web.lab.example.test:8080/. Harapannya halaman LabSite yang sama dengan latihan sebelumnya; periksa URL dan isi, bukan sekadar adanya respons.

Header Host pada permintaan HTTP menunjukkan nama yang diminta, bukan mengautentikasi pengguna. Mengetahui web.lab.example.test tidak membuktikan identitas atau memberikan hak tambahan. Setelah nama kosong diganti, akses melalui IP langsung mungkin tidak lagi memilih LabSite atau mendapat respons lain bila ada binding cocok yang berbeda. Uji setiap situs dengan nama dan port yang ditentukan.

Jika gagal, periksa dahulu apakah nama mengarah ke 172.24.50.30, lalu cocokkan protokol, port 8080, dan nama permintaan dengan binding sebenarnya. Jika halaman yang muncul salah, periksa pula binding tanpa nama dan konten folder yang dipilih. DNS benar belum memastikan jalur jaringan, firewall, izin, autentikasi, dan pool benar. Jangan mengganti DNS internal dengan DNS publik atau mematikan firewall secara luas.

Buat situs kedua dengan identitas sendiri

  1. Buat C:\Sites\StatusSite hanya jika belum ada. Simpan index.html UTF-8 tersendiri: salin dokumen LabSite lengkap dari latihan sebelumnya, lalu hanya pada salinan ini ubah teks title dan h1 menjadi StatusSite serta paragraf menjadi This page is served by StatusSite on WEB1. Pertahankan struktur HTML, jangan mengedit file LabSite, dan periksa ekstensi sebenarnya.
  2. Buat StatusSitePool jika namanya belum dipakai, dengan No Managed Code dan ApplicationPoolIdentity. Jangan menggunakan LabSitePool hanya demi kemudahan.
  3. Pada Properties → Security folder baru pilih WEB1 sebagai lokasi dan tambahkan IIS AppPool\StatusSitePool. Berikan Read & execute, List folder contents, dan Read pada folder serta file, mempertahankan SYSTEM dan administrator. Jangan memberi proses web hak menulis atau Full control.
  4. Pada Sites → Add Website buat StatusSite dengan C:\Sites\StatusSite dan StatusSitePool. Pastikan ketiga nilai tepat.
  5. Gunakan binding http / 172.24.50.30 / 8080 / status.lab.example.test. Jangan menyalin web.lab.example.test atau mengganti port sehingga perbandingan berubah.
  6. Pada StatusSite aktifkan Anonymous Authentication dan pilih Application pool identity. Periksa Default Document aktif dengan index.html, serta pool dan situs dapat dimulai.
  7. Dari CLIENT1 buka http://web.lab.example.test:8080/ dan http://status.lab.example.test:8080/. Keduanya harus menampilkan pesan berbeda milik LabSite dan StatusSite. Jika sama, periksa binding, jalur, dan file sebelum menghentikan pool.

Kedua situs berbagi IP dan port karena nama host membedakan permintaan HTTP dalam latihan ini. Jangan menduplikasi kombinasi lengkap atau memakai nama host yang sama secara tidak sengaja pada kedua situs. Tinjau permintaan yang bisa diterima binding tanpa nama yang tersisa; jangan menghapus binding lain tanpa mengetahui kegunaannya. Pemisahan nama bukan autentikasi dan tidak otomatis menyiapkan sertifikat HTTPS.

Pool terpisah memudahkan pengelolaan identitas, penghentian, dan recycle secara terpisah. Keduanya tetap berbagi sistem operasi, kernel, penyimpanan, dan sumber daya host, sehingga batasnya tidak sama dengan VM terpisah dan tidak menjamin beban berlebih selalu terkandung. Terapkan akses minimum tiap identitas sesuai panduan identitas application pool; StatusSitePool tidak memerlukan akses tambahan ke konten situs lain.

Bandingkan penghentian dan recycle pool

  1. Catat respons berhasil kedua situs, URL, waktu, penempatan pool, dan status kedua pool. Tanpa acuan ini, gangguan sebelumnya tidak membuktikan dampak penghentian satu pool.
  2. Di IIS Manager → Application Pools pilih hanya StatusSitePool lalu Stop. Periksa namanya sebelum bertindak; jangan menghentikan LabSitePool atau seluruh IIS.
  3. Kirim permintaan baru dari CLIENT1 ke kedua nama, menghindari halaman cache browser dianggap sebagai respons server baru. Periksa status HTTP pada panel jaringan dan log, lalu catat masing-masing situs secara terpisah.
  4. Pilih StatusSitePool → Start dan pastikan pemulihan melalui permintaan baru. Periksa juga LabSite sebelum mengakhiri latihan.

Saat StatusSitePool dihentikan, situsnya dapat memberikan HTTP 503 sementara LabSite di pool berbeda diharapkan tetap merespons normal. Periksa keduanya, bukan menganggap sembarang kesalahan sebagai bukti isolasi. Jika keduanya gagal, periksa penempatan pool, status situs, dan sumber daya bersama. Bedakan Stop pada situs dengan Stop pada pool; jangan memakai iisreset atau restart server untuk perbandingan ini.

Recycle application pool mengganti proses pekerja dan dapat memengaruhi sesi dalam memori atau pekerjaan yang berlangsung. IIS mendukung kondisi pemicu serta pengaturan proses yang tumpang tindih; pengamatan halaman statis tidak menjamin aplikasi tanpa gangguan. Jika membandingkan tindakan Recycle secara manual, lakukan hanya pada StatusSitePool sesudah kedua situs pulih, catat status serta permintaan sebelum dan sesudahnya, dan pastikan kedua halaman kembali benar. Jangan mengubah ambang atau jadwal untuk memicu gangguan. Untuk pembersihan, hapus hanya StatusSite, StatusSitePool setelah memastikan tidak dipakai aplikasi lain, file uji milik sendiri, dan catatan status yang dibuat. Pertahankan LabSite serta binding web jika melanjutkan latihan HTTPS. Jika berhenti di sini, pulihkan binding awal yang dicatat dan hapus hanya catatan baru milik sendiri setelah memeriksa ketergantungan; jangan menghapus zona atau catatan domain.