Memahami Situs, Aplikasi, dan Direktori Virtual di IIS 7

oleh Reagan Templin

Pengantar

Di IIS, Anda dapat membuat situs, aplikasi, dan direktori virtual untuk berbagi informasi dengan pengguna melalui Internet, intranet, atau ekstranet. Meskipun konsep-konsep ini ada di versi IIS yang lebih lama, beberapa perubahan di IIS 7 ke atas memengaruhi definisi dan fungsionalitas konsep ini. Yang paling penting, situs, aplikasi, dan direktori virtual sekarang bekerja sama dalam hubungan hierarkis sebagai blok penyusun dasar untuk menghosting konten online dan menyediakan layanan online.

Artikel ini memberikan gambaran umum singkat tentang aplikasi di IIS 6.0 sehingga Anda dapat lebih memahami perbedaan yang diperkenalkan di IIS 7. Kemudian menjelaskan konsep situs, aplikasi, dan direktori virtual di IIS dan memperkenalkan bagian <sites> dalam konfigurasi.

Tentang Situs, Aplikasi, dan Direktori Virtual di IIS 6.0

Di IIS 6.0, konsep direktori dan aplikasi virtual membingungkan. Meskipun mereka dibahas sebagai konsep terpisah, (dan mereka secara konseptual berbeda dari sudut sikap fungsionalitas), aplikasi bukanlah objek yang terpisah secara fisik dari direktori virtual. Di IIS 6.0, aplikasi benar-benar hanyalah direktori virtual dengan satu atau kombinasi properti berikut di metabase: AppFriendlyName, AppRoot, AppIsolated, dan AppPoolID.

Catatan

Akar situs adalah pengecualian, karena secara implisit diperlakukan sebagai aplikasi bahkan jika properti tersebut tidak ditetapkan.

Aplikasi kurang penting bagi IIS daripada teknologi yang memperluas fungsionalitas server Web, seperti Halaman Server Aktif (ASP), Antarmuka Pemrograman Aplikasi Server Internet (ISAPI), dan ASP.NET. Teknologi ini menyediakan fitur dan pemrosesan tambahan untuk aplikasi yang dihosting di IIS 6.0, dan memungkinkan pengembang untuk membuat aplikasi yang lebih kompleks. Pertanyaan penting untuk IIS 6.0 adalah mengisolasi aplikasi tersebut dengan cara yang akan mencegah aplikasi dalam satu kumpulan aplikasi memengaruhi aplikasi di kumpulan aplikasi lain di server.

Tentang Situs, Aplikasi, dan Direktori Virtual di IIS 7 ke Atas

IIS 7 ke atas memformalkan konsep situs, aplikasi, dan direktori virtual. Direktori dan aplikasi virtual sekarang menjadi objek terpisah, dan ada dalam hubungan hierarkis dalam skema konfigurasi IIS. Secara singkat, situs berisi satu atau beberapa aplikasi, aplikasi berisi satu atau beberapa direktori virtual, dan direktori virtual memetakan ke direktori fisik di komputer.

Seperti pada IIS 6.0, situs berisi semua konten, baik statis maupun dinamis, yang terkait dengan situs tersebut. Namun, setiap situs harus berisi setidaknya satu aplikasi, yang diberi nama aplikasi root. Dan setiap aplikasi (termasuk aplikasi akar) harus berisi setidaknya satu direktori virtual, yang dinamai direktori virtual akar. Objek-objek ini bekerja sama untuk membentuk situs.

Selain itu, di IIS 7 ke atas, konsep aplikasi sekarang memiliki arti untuk IIS dan teknologi yang memperluas fungsionalitas IIS. Aplikasi adalah objek yang penting untuk server saat runtime. Ini karena IIS dan ASP.NET alur pemrosesan permintaan telah digabungkan di IIS 7 ke atas sehingga konten dapat memanfaatkan fungsionalitas yang sebelumnya disediakan hanya untuk aplikasi kode terkelola. Misalnya, setiap aplikasi kode terkelola berjalan di Domain Aplikasi (AppDomain). Aplikasi dapat memiliki beberapa direktori virtual, dan masing-masing akan dilayani oleh AppDomain yang sama dengan aplikasi tempat mereka berada.

Bagian berikut menjelaskan situs, aplikasi, direktori virtual, dan konfigurasi terkait secara lebih rinci.

Situs

Situs adalah kontainer untuk aplikasi dan direktori virtual, dan Anda dapat mengaksesnya melalui satu atau beberapa pengikatan unik.

Pengikatan mencakup dua atribut penting untuk komunikasi: protokol pengikatan dan informasi pengikatan. Protokol pengikatan menentukan protokol di mana komunikasi antara server dan klien terjadi. Informasi pengikatan menentukan informasi yang digunakan untuk mengakses situs. Misalnya, protokol pengikatan situs Web dapat berupa HTTP atau HTTPS, dan informasi pengikatan adalah kombinasi dari alamat IP, port, dan header host opsional.

Situs mungkin berisi lebih dari satu pengikatan jika situs memerlukan protokol atau informasi pengikatan yang berbeda. Di versi IIS yang lebih lama, hanya protokol HTTP dan HTTPS yang didukung. Misalnya, situs Web mungkin memiliki pengikatan HTTP dan pengikatan HTTPS ketika bagian situs memerlukan komunikasi yang aman melalui HTTPS.

Di IIS 7 ke atas, pengikatan dapat berlaku untuk protokol apa pun. Layanan Aktivasi Proses Windows (WAS) adalah layanan baru yang memungkinkan IIS menggunakan protokol tambahan. Layanan ini mempertahankan model proses IIS 6.0 yang akrab, seperti kumpulan aplikasi dan aktivasi proses berbasis pesan, serta fitur hosting, seperti perlindungan kegagalan cepat, pemantauan kesehatan, dan daur ulang. Namun, WAS menghapus dependensi pada HTTP dari arsitektur aktivasi. Ini berguna untuk teknologi yang menyediakan komunikasi aplikasi-ke-aplikasi di Layanan Web melalui protokol standar. Model pemrograman Windows Communication Foundation (WCF) adalah salah satu teknologi seperti itu yang dapat memungkinkan komunikasi melalui protokol standar Protokol Kendali Transmisi (TCP), Antrean Pesan Microsoft (MSMQ), dan Pipa Bernama. Ini memungkinkan aplikasi yang menggunakan protokol komunikasi memanfaatkan fitur IIS, seperti daur ulang proses, perlindungan kegagalan cepat, dan konfigurasi yang sebelumnya hanya tersedia untuk aplikasi berbasis HTTP. Untuk informasi selengkapnya tentang model pemrograman WCF, lihat Windows Communication Foundation di MSDN.

Selain berisi aplikasi (yang berisi direktori virtual) dan menentukan pengikatan, pengaturan konfigurasi berikut milik situs:

  • Batas: konfigurasikan pengaturan untuk membatasi jumlah bandwidth, jumlah koneksi, atau jumlah waktu yang diizinkan untuk koneksi ke situs.
  • Pengelogan: mengonfigurasi pengaturan untuk penanganan dan penyimpanan file log untuk situs.
  • Log pelacakan permintaan gagal: konfigurasikan pengaturan untuk mencatat jejak permintaan yang gagal untuk situs.

Aplikasi

Aplikasi adalah sekelompok file yang mengirimkan konten atau menyediakan layanan melalui protokol, seperti HTTP. Saat Anda membuat aplikasi di IIS, jalur aplikasi menjadi bagian dari URL situs.

Di IIS 7 ke atas, setiap situs harus memiliki aplikasi yang diberi nama aplikasi root, atau aplikasi default. Namun, situs dapat memiliki lebih dari satu aplikasi. Misalnya, Anda mungkin memiliki situs Web perdagangan online yang memiliki beberapa aplikasi, seperti aplikasi keranjang belanja yang memungkinkan pengguna mengumpulkan item selama berbelanja dan aplikasi login yang memungkinkan pengguna untuk memanggil kembali informasi pembayaran yang disimpan saat mereka melakukan pembelian.

Selain milik situs, aplikasi milik kumpulan aplikasi, yang mengisolasi aplikasi dari aplikasi di kumpulan aplikasi lain di server. Dalam kasus aplikasi kode terkelola, pastikan untuk mengaitkan aplikasi Anda bersama dengan kumpulan aplikasi yang menjalankan versi .NET Framework yang diperlukan aplikasi Anda.

Seperti yang dijelaskan di bagian Situs dari makalah ini, IIS mendukung HTTP dan HTTPS secara default, tetapi Anda dapat menggunakan protokol tambahan. Untuk setiap situs, Anda menentukan satu atau beberapa pengikatan untuk berkomunikasi dengan dan mengakses konten di situs. Agar aplikasi berkomunikasi dengan menggunakan protokol yang ditentukan dalam pengikatan situs induk, Anda harus mengaktifkan protokol. Untuk melakukan ini, tentukan protokol di atribut enabledProtocols untuk aplikasi, dan pastikan Anda memiliki adaptor pendengar yang sesuai di server dan ditentukan di bagian <listenerAdapters> dalam konfigurasi.

Direktori Virtual

Direktori virtual adalah nama direktori (juga disebut sebagai jalur) yang Anda tentukan di IIS dan memetakan ke direktori fisik di server lokal atau jarak jauh. Nama direktori kemudian menjadi bagian dari URL aplikasi, dan pengguna dapat meminta URL dari browser untuk mengakses konten di direktori fisik, seperti halaman Web atau daftar direktori dan file tambahan. Jika Anda menentukan nama yang berbeda untuk direktori virtual daripada direktori fisik, lebih sulit bagi pengguna untuk menemukan struktur file fisik aktual di server Anda karena URL tidak memetakan langsung ke akar situs.

Di IIS 7 ke atas, setiap aplikasi harus memiliki direktori virtual, yang diberi nama direktori virtual akar, dan yang memetakan aplikasi ke direktori fisik yang berisi konten aplikasi. Namun, aplikasi dapat memiliki lebih dari satu direktori virtual. Misalnya, Anda mungkin menggunakan direktori virtual ketika Anda ingin aplikasi Anda menyertakan gambar dari lokasi lain dalam sistem file, tetapi Anda tidak ingin memindahkan file gambar ke direktori fisik yang dipetakan ke direktori virtual akar aplikasi.

Secara bawan, IIS menggunakan konfigurasi dari berkas Web.config dalam direktori fisik tempat direktori virtual yang dipetakan, serta dalam direktori anak mana pun dalam direktori fisik tersebut. Jika Anda tidak ingin menggunakan file Web.config di direktori turunan, tentukan false untuk atribut allowSubDirConfig pada direktori virtual.

Secara opsional, ketika Anda perlu menentukan kredensial dan metode untuk mengakses direktori virtual, Anda dapat menentukan nilai untuk atribut nama pengguna, kata sandi, dan logonMethod .

Konfigurasi IIS: <sites> Bagian

Lihat bagian default <sites> di IIS 7 ke atas. Inilah yang ada di file ApplicationHost.config (terletak di %windir%\system32\inetsrv\config\) setelah menginstal IIS di Windows ServerĀ® 2008.

<sites> 
    <site name="Default Web Site" id="1"> 
        <application path="/"> 
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> 
        </application> 
        <bindings> 
            <binding protocol="http" bindingInformation="*:80:" /> 
        </bindings> 
    </site> 
    <siteDefaults> 
        <logFile logFormat="W3C" directory="%SystemDrive%\inetpub\logs\LogFiles" /> 
        <traceFailedRequestsLogging directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" /> 
    </siteDefaults> 
    <applicationDefaults applicationPool="DefaultAppPool" /> 
    <virtualDirectoryDefaults allowSubDirConfig="true" /> 
</sites>

Ketika Anda melihat satu "/" di bidang jalur, Anda tahu bahwa ini adalah objek akar. Tergantung pada apakah itu di bagian aplikasi atau direktori virtual, itu adalah aplikasi akar atau direktori virtual akar.

Elemen Default

Bagian berikut mencantumkan koleksi dan elemen di bagian , <sites> dan hubungan hierarkisnya di dalam bagian <sites> .

<sites> section 
<site> collection 
<bindings> collection 
<binding> element 
<clear> element 
<limits> element 
<logFile> element 
<traceFailedRequestsLogging> element 
<application> collection 
<virtualDirectory> collection 
<virtualDirectoryDefaults> element 
<applicationDefaults> element 
<virtualDirectoryDefaults> element 
<siteDefaults> element 
<bindings> collection 
<binding> element 
<clear> element 
<limits> element 
<logFile> element 
<traceFailedRequestsLogging> element 
<applicationDefaults> element 
<virtualDirectoryDefaults> element

Perhatikan bahwa ada dua elemen yang muncul di lebih dari satu tempat: <applicationDefaults> elemen dan <virtualDirectoryDefaults> elemen . Ada juga <siteDefaults> elemen, meskipun hanya muncul sekali karena hanya dapat dikonfigurasi di satu lokasi di bagian tersebut <sites> . Elemen default bersifat khusus karena memungkinkan Anda mengonfigurasi nilai default untuk atribut alih-alih harus mengulangi nilai yang sama di setiap koleksi.

Saat atribut dikonfigurasi pada lebih dari satu tingkat, nilai pada tingkat terendah digunakan. Misalnya, jika Anda menentukan nilai default dalam <applicationDefaults> elemen di bagian <sites> dan dalam <site> koleksi, nilai dari <site> koleksi akan digunakan. Selain itu, jika atribut atau elemen turunan yang sama dikonfigurasi dalam elemen default dan dalam koleksi objek, nilai dalam koleksi akan digunakan. Misalnya, jika Anda mengonfigurasi atribut dalam <applicationDefaults> elemen dan dalam <application> koleksi, nilai dari <application> koleksi akan digunakan.

Tabel berikut menentukan di mana elemen induk elemen <applicationDefaults> dapat dikonfigurasi, dan menjelaskan efek yang dimiliki nilai pada aplikasi.

elemen induk Deskripsi
<sites> bagian Menentukan pengaturan default untuk semua aplikasi di server.
<site> koleksi Menentukan pengaturan default untuk semua aplikasi di situs induk.

Tabel berikut menentukan di mana elemen induk dapat <virtualDirectoryDefaults> dikonfigurasi, dan menjelaskan efek yang dimiliki nilai pada direktori virtual.

elemen induk Deskripsi
<sites> bagian Menentukan pengaturan default untuk semua direktori virtual pada server.
<site> koleksi Menentukan pengaturan default untuk semua direktori virtual di situs induk.
<application> koleksi Menentukan pengaturan default untuk semua direktori virtual dalam aplikasi induk.

Ringkasan

Anda sekarang harus memiliki pemahaman yang lebih baik tentang situs, aplikasi, dan direktori virtual di IIS 7 ke atas. Tidak seperti IIS 6.0, aplikasi dan direktori virtual telah menjadi objek yang berbeda dalam konfigurasi, yang menyoroti tujuan unik mereka ke server Web dan hubungannya dengan situs. Selain itu, situs sekarang dapat berisi aplikasi yang menggunakan protokol selain HTTP dan HTTPS, yang memperluas fungsionalitas situs sambil mempertahankan manfaat model proses yang diperkenalkan di IIS 6.0.

Untuk informasi selengkapnya tentang arsitektur WAS dan IIS, lihat Arsitektur Request-Processing IIS di IIS.NET. Untuk informasi selengkapnya tentang pengaturan konfigurasi yang dibahas dalam artikel ini, lihat Skema Pengaturan IIS 7 di MSDN.