Konfigurasi Bersama dengan IIS 7
Pengantar
Internet mengubah cara perusahaan menangani bisnis sehari-hari mereka dan bagaimana mereka bersaing di pasar. Dengan munculnya teknologi Web baru dan peningkatan jumlah pelanggan yang mengakses sumber daya yang tersedia melalui Web, ada kebutuhan yang mendesak untuk meningkatkan skalabilitas, ketersediaan, keandalan, dan pengelolaan aplikasi. Aplikasi harus mengandalkan sistem yang menyediakan kemampuan untuk memberikan waktu aktif yang tinggi, throughput permintaan yang ditingkatkan, peningkatan transaksi pengguna bersamaan dan nilai pengembalian investasi yang lebih baik, seperti kualitas layanan yang lebih baik, daripada sistem yang bersaing.
Farm web - kluster server - telah menjadi standar dalam membantu memberikan aplikasi yang sangat dapat diskalakan, tersedia, dan dapat dikelola dengan mendistribusikan beban. Lebih khusus lagi, atribut aplikasi ini adalah alasan utama di balik farm Web dan penyeimbangan beban. Dengan menggunakan farm Web, organisasi dapat menyediakan cara yang dapat diskalakan untuk meningkatkan kapasitas basis pengguna yang mengakses aplikasi dan sumber dayanya secara bersamaan.
Kluster server menyediakan ketersediaan yang ditingkatkan dengan meminta beberapa server mendistribusikan beban. Kluster ini juga menskalakan lebih baik ke peningkatan jumlah pelanggan pada titik waktu tertentu. Terakhir, kluster memberikan pengalaman manajemen yang lebih baik dengan menangani provisi dan administrasi arsitektur farm Web dengan mudah dan tanpa membatasi sumber daya operasional.
Gambaran Umum
Artikel ini berfokus pada fitur konfigurasi global terpusat bersama. Fitur ini membantu mendukung farm Web homogen di mana server berbagi konfigurasi yang sama di seluruh grup server. Dengan menggunakan berbagi UNC, setiap perubahan pada file konfigurasi master pusat akan menyebar di berbagai server tanpa alat tambahan atau dukungan terprogram.
Bagian pertama dari artikel ini menjelaskan cara menggunakan UI administrasi IIS 7 ke atas untuk mengaktifkan dan menggunakan konfigurasi bersama. Bagian kedua menjelaskan cara mengaktifkan dan menggunakan konfigurasi bersama dari baris perintah.
Non-Tujuan: Apa yang Tidak Dibahas Artikel Ini
Beberapa aspek berkontribusi pada lingkungan farm Web yang sukses, termasuk dukungan yang benar, pengelolaan, aksesibilitas, skalabilitas, dll.
Konfigurasi bersama hanya berfokus pada aspek manajemen konfigurasi farm Web dan menangani konfigurasi di seluruh server. Ada alat dan fitur lain yang dapat membantu mengelola beberapa server, menyalin konten, menyebarkan modul, menyinkronkan biner aplikasi, menyiapkan komponen pihak ketiga, dll. Alat, fitur, dan aspek ini berada di luar cakupan artikel ini.
Artikel ini hanya merinci cara mempertahankan konfigurasi dengan menggunakan file pusat di seluruh server.
Oleh karena itu, perhatikan bahwa sharedconfiguration memungkinkan server untuk mengakses file konfigurasi di berbagi UNC back-end seolah-olah itu adalah konfigurasi lokalnya. Akibatnya, ketika Anda memperbarui konfigurasi dengan menggunakan server Web front-end, pembaruan dilakukan ke semua server lain.
Penting untuk mempertimbangkan situasi lain, seperti menginstal modul pihak ketiga atau menambahkan pengaturan konfigurasi, dan menyertakan properti yang hanya dapat dipahami oleh satu server dan memiliki biner dan skema yang tersedia untuk berfungsi dengan benar. Jika tidak, jenis penggunaan ini dapat merusak server lain.
Untuk menghindari masalah ini di farm homogen, Anda harus menonaktifkan konfigurasi bersama pada kluster, memperbarui file applicationHost lokal sehingga mencerminkan file jarak jauh, menyebarkan dan memperbarui modul dan konfigurasi pada satu server, lalu mengaktifkan kembali konfigurasi bersama di server tersebut. Kemudian Anda dapat menyebarkan dan memperbarui biner dan modul di server lainnya sebelum mengaktifkan konfigurasi bersama lagi.
Lingkungan Domain dan Non-domain
Beberapa administrator menyebarkan kluster server Web di lingkungan domain, sementara yang lain menyebarkan dalam grup kerja (non-domain). Artikel ini membahas skenario dan menunjukkan perbedaan dan peringatan. Disarankan agar Anda menyiapkan IIS dalam kluster di domain, dengan bantuan dan keamanan yang disediakan Direktori Aktif dengan menggunakan pengendali domain.
Prasyarat
Anda harus menyelesaikan langkah-langkah berikut secara berurutan:
- Instal IIS di server Anda, yang akan disebut sebagai Server Web di seluruh artikel ini.
- Pastikan akses ke server kedua, yang akan disebut sebagai Server File di seluruh artikel ini. Server File akan menampung berbagi untuk konfigurasi dan konten dasar, yang dapat diakses dengan menggunakan UNC.
- Setiap langkah artikel ini mengasumsikan bahwa langkah sebelumnya telah selesai. Lakukan semua langkah secara berurutan.
- Untuk beberapa langkah, ada langkah setara yang dapat dilakukan dengan menggunakan UI. Lakukan hanya satu jenis langkah, kecuali ditentukan sebaliknya.
Konfigurasi Terpusat
UI administrasi IIS mencakup dukungan untuk menyiapkan pengalihan konfigurasi dan mengekspor file konfigurasi dan kunci enkripsi yang diperlukan ke jalur tertentu.
Untuk mengekspor file dan menyiapkan pengalihan konfigurasi dengan menggunakan UI
- Buka Manajer IIS.
- Dalam tampilan pohon, pilih koneksi server yang ingin Anda siapkan pengalihan konfigurasinya.
- Klik dua kali Konfigurasi Bersama.
- Di panel Tindakan , klik Ekspor Konfigurasi... untuk mengekspor file konfigurasi yang diperlukan dari server lokal ke lokasi lain (misalnya, berbagi UNC).
- Dalam kotak dialog Ekspor Konfigurasi , masukkan jalur yang ingin Anda ekspor filenya. Masukkan kata sandi untuk melindungi kunci enkripsi yang juga diekspor. Klik OK untuk mengekspor file konfigurasi dan kunci enkripsi yang dilindungi kata sandi.
- Pilih kotak centang Aktifkan konfigurasi bersama untuk mengaktifkan pengalihan konfigurasi.
- Tentukan jalur tempat kunci konfigurasi dan enkripsi berada, dan tentukan kredensial yang akan digunakan untuk mengakses jalur tersebut. Klik Koneksi Sebagai... dan masukkan kredensial.
- Klik Terapkan untuk menyimpan pengaturan. Dalam kotak dialog Konfigurasi Bersama, masukkan kata sandi yang Anda tentukan untuk melindungi kunci enkripsi.
- Klik OK untuk menyelesaikan penyetelan pengalihan konfigurasi.
Langkah-langkah di atas menjelaskan cara mengekspor konfigurasi dan mengaktifkan konfigurasi terpusat. Namun, Anda hanya perlu mengekspor konfigurasi sekali. Lakukan langkah 6 hingga 9 pada setiap server berikutnya yang akan menggunakan konfigurasi terpusat.
Catatan Tentang Menggunakan UI
Saat menyiapkan pengalihan konfigurasi, file yang diekspor diharapkan telah diekspor dengan menggunakan UI. Ini karena UI mengekspor dan mengimpor item seperti kunci enkripsi yang dilindungi kata sandi dengan menggunakan format kustomnya sendiri.
Misalnya, jika Anda menyalin file administration.config dan applicationHost.config secara manual ke berbagi lalu mengekspor kunci enkripsi secara manual, Anda tidak akan dapat menggunakan UI untuk menyiapkan pengalihan konfigurasi untuk menunjuk ke file-file tersebut. Ini karena kunci enkripsi yang diekspor tidak akan dalam format yang diperlukan oleh UI.
perintah
Di seluruh sisa artikel ini, Anda harus menggunakan perintah untuk menjalankan perintah tertentu. Disarankan agar Anda menggunakan prompt perintah dengan hak pengguna yang ditingkatkan, karena perintah tertentu tidak akan berfungsi jika Anda menjalankan prompt perintah normal.
Untuk membuka prompt perintah dengan hak pengguna yang ditingkatkan
- Klik Mulai.
- Klik Semua Program.
- Klik Aksesori.
- Klik kanan Perintah dan pilih Jalankan sebagai administrator.
- Ikuti perintah dalam kotak dialog apa pun yang muncul.
Mencadangkan File ApplicationHost.config Saat Ini
Saat mencoba fitur baru atau mengubah beberapa pengaturan konfigurasi, ada baiknya untuk mencadangkan file applicationHost.config saat ini.
Untuk mencadangkan file applicationHost.config
Buka prompt perintah.
Navigasikan ke direktori IIS, yang terletak secara
%WINDIR%\System32\InetSrv
default. File konfigurasi disimpan di direktori InetSrv\Config. Gunakan alat AppCmd untuk membuat objek cadangan dan mencadangkan file applicationHost.config dengan menjalankan perintah berikut:cd /d %windir%\system32\inetsrv appcmd add backup centralConfigBackup
Catatan
Alat AppCmd berada di direktori InetSrv. Anda harus mengakses alat dari direktori ini, kecuali jalur alat ditambahkan ke variabel lingkungan sistem.
Pastikan bahwa objek cadangan, yang mencakup file applicationHost.config dan file metabase warisan untuk SMTP dan pengaturan server non-Web lainnya, ada dengan menjalankan perintah berikut:
appcmd list backup
Untuk mengganti file konfigurasi saat ini dengan file cadangan
Buka prompt perintah.
Navigasikan ke direktori IIS, yang terletak di direktori InetSrv secara default. Pulihkan objek file cadangan AppCmd dengan menjalankan perintah berikut:
cd /d %windir%\system32\inetsrv\ appcmd restore backup centralConfigBackup
Membuat Pengguna untuk Mengakses Berbagi UNC untuk Konfigurasi
Di lingkungan domain, administrator harus menyediakan atau membuat akun di domain untuk digunakan dengan Direktori Aktif. Akun ini harus disiapkan dengan hak pengguna yang benar untuk mengakses berbagi UNC.
Di lingkungan non-domain, administrator harus membuat di kedua server pengguna lokal dengan hak pengguna untuk mengakses konten. Nama pengguna dan kata sandi harus sama di seluruh server agar berfungsi dalam penyetelan ini. Langkah-langkah berikut membantu dalam pembuatan pengguna untuk membaca berbagi tempat konfigurasi bersama berada.
Untuk membuat pengguna yang dapat membaca berbagi tempat konfigurasi bersama berada (non-domain)
Buka prompt perintah.
Di Server Web (server front-end tempat IIS diinstal), buat pengguna bernama ConfigUser1 dengan kata sandi ConfigPass1 dengan menjalankan perintah berikut:
net user ConfigUser1 ConfigPass1 /add
Di Server File (server back-end tempat konfigurasi pusat akan berada), buat pengguna bernama ConfigUser1 dengan kata sandi ConfigPass1 dengan menjalankan perintah berikut:
net user ConfigUser1 ConfigPass1 /add
Membuat Berbagi UNC untuk Konfigurasi dan Konten Pusat
Berbagi UNC untuk konfigurasi menghosting file applicationHost.config untuk server apa pun yang ingin mengambil data konfigurasi dari lokasi terpusat ini.
Untuk membuat berbagi UNC
Di Server File, buka prompt perintah.
Navigasi ke akar drive. Jalankan perintah berikut untuk membuat direktori untuk konfigurasi dan berbagi direktori ini, pastikan untuk memberi pengguna hak pengguna untuk membaca dan menulis ke direktori:
md %SystemDrive%\centralconfig net share centralconfig$=%SystemDrive%\centralconfig /grant:Users,Change
Catatan
Perintah ini secara otomatis memberikan hak pengguna kepada grup pengguna untuk berbagi ini. Pengguna yang dibuat untuk skenario non-domain diberikan hak perubahan secara otomatis, yang dapat dibatasi lebih lanjut jika diperlukan. Untuk skenario domain, pengguna harus memiliki hak pengguna yang ditetapkan secara eksplisit untuk mengakses berbagi atau ditambahkan ke grup pengguna dalam sistem.
Skenario non-domain: Untuk meningkatkan keamanan berbagi, Anda dapat mengganti bagian Pengguna,Ubah bagian dari sakelar /grant dengan parameter ConfigUser1,Change. Hanya pengguna yang ditentukan yang akan memiliki akses ke berbagi.
Skenario domain: Untuk meningkatkan keamanan berbagi, Anda dapat mengganti Pengguna, Mengubah bagian dari /grant switch dengan domain\user,Ubah parameter. Hanya pengguna yang ditentukan yang akan memiliki akses jarak jauh ke berbagi.
Catatan
Hak pengguna pada berbagi adalah persatuan antara hak pengguna sistem file jarak jauh dan lokal. Anda harus mengatur hak pengguna yang sesuai ke direktori agar akun domain berhasil membaca berbagi konfigurasi.
Memberikan Hak Pengguna ke Akun untuk Berbagi UNC yang Menghosting Konfigurasi dan Konten Pusat
Anda harus memastikan bahwa akun yang digunakan untuk mengakses konfigurasi memiliki hak pengguna yang sesuai. Akun ini digunakan oleh IIS untuk mengakses berbagi UNC dengan cara yang sama seperti mengakses konten ketika direktori virtual dipetakan ke berbagi UNC. Hak pengguna baca untuk akun ini berguna saat mengakses berbagi saja. Setelah itu, setiap kali IIS membaca file konfigurasi, IIS kembali ke identitas yang dimiliki pemanggil: baik API, alat administrasi yang sedang digunakan, atau pengguna yang masuk pada saat itu.
Catatan
Akun ConfigUser1 - atau akun domain yang setara yang digunakan untuk membaca konfigurasi - tidak sama dengan akun yang digunakan untuk menulis konfigurasi. Akun-akun ini tidak diharuskan memiliki hak pengguna tulis untuk file berbagi atau konfigurasi.
Untuk memberikan hak pengguna ke akun untuk berbagi UNC (domain)
- Jika akun domain adalah bagian dari grup pengguna lokal dan pengguna diberikan akses saat berbagi dibuat, Anda dapat melewati langkah berikutnya untuk penyiapan domain. Namun, jika akun domain untuk mengakses berbagi file lokal bukan bagian dari grup pengguna lokal, Anda harus menjalankan perintah untuk memberikan hak pengguna.
- Di Server File, buka prompt perintah.
- Berikan hak pengguna ke akun domain untuk membaca direktori tempat konfigurasi disimpan dengan menjalankan perintah berikut:
icacls %SystemDrive%\centralconfig\ /grant domain\user:R
Untuk menambahkan pengguna UNC (non-domain dan domain)
Untuk skenario domain dan non-domain, nama pengguna harus menyertakan konfigurasi pekerjaan batch masuk. Ini bukan pengaturan default di Windows ServersĀ® 2008; Anda harus menambahkannya secara manual ke server Web.
- Klik Mulai. Klik Alat Administratif dan pilih Kebijakan Keamanan Lokal.
- Di bawah Kebijakan Lokal, pilih Penetapan Hak Pengguna.
- Klik dua kali Masuk sebagai pekerjaan batch dan tambahkan pengguna UNC yang Anda buat.
Mengalihkan Konfigurasi
Pengantar
Sekarang setelah Anda menyelesaikan langkah-langkah sebelumnya, server Web berfungsi dan server Web front-end harus melayani Situs Web Default-nya dengan menggunakan alamat belakang perulangan localhost.
Anda sekarang dapat memindahkan konfigurasi ke lokasi pusat. Ini memungkinkan Anda untuk mendeklarasikan file sebagai file master dan menyimpannya di berbagi UNC untuk konfigurasi beberapa server. Mengubah file ini sekali akan menyediakan dan memperbarui semua konfigurasi server sekaligus.
Untuk menyimpan konfigurasi dalam berbagi UNC
Salin file applicationHost.config dan administration.config dari
%windir%\system32\inetsrv\config
direktori di server Web front-end untuk dibagikan di server file back-end. Jika akun pengguna yang saat ini masuk memiliki akses tulis ke berbagi back-end, Anda dapat meletakkan file di direktori. Jika tidak, maka Anda harus mengautentikasi akun pengguna ke back-end untuk menyelesaikan langkah ini.Akses file XML redirection.config yang ada di direktori konfigurasi server front-end:
- Gunakan Windows Explorer untuk menavigasi ke
%windir%\system32\inetsrv\config
. - Buka file redirection.config. File ini dan isinya dibuat ketika server Web disiapkan. Alat dan API dapat mengakses file ini untuk menentukan apakah fitur ini diaktifkan atau tidak.
- Gunakan Windows Explorer untuk menavigasi ke
Buka file redirection.config. Atur konfigurasi berikut dengan nama server, nama pengguna, dan kata sandi yang benar untuk lingkungan Anda.
<configuration> <configSections> <section name="configurationRedirection" /> </configSections> <configurationRedirection enabled="true" path="\\machinename\centralconfig$\" userName="ConfigUser1 or domain\user" password="ConfigPass1 or domainPassword" /> </configuration>
Simpan file redirection.config Anda. Anda dapat mengakses situs lagi, tetapi konfigurasi sekarang disimpan dalam berbagi UNC.
Menguji Konfigurasi
Dengan konfigurasi yang direferensikan dari back-end, ada dua skenario utama di mana fitur ini dirancang. Anda dapat memperbarui konfigurasi di server Web front-end dengan dua cara:
- Anda dapat mengedit file applicationHost.config langsung di berbagi file. Setelah ini selesai, pemberitahuan perubahan terjadi dan server Web mengambil perubahan dalam file.
- Anda dapat menambahkan file applicationHost.config kedua di berbagi file back-end dan mengubah file redirection.config server Web untuk menunjuk ke versi baru file. Ini berguna untuk tujuan pemutaran kembali atau penyebaran bertahap.
Ringkasan
Artikel ini memperkenalkan fitur konfigurasi terpusat baru. Fitur ini memungkinkan administrator yang memiliki kluster homogen di lingkungan farm Web menyiapkan dan menyebarkan konfigurasi ke semua server dengan cara yang mulus.
Setelah fitur disiapkan, apakah perubahan dilakukan dalam file di berbagi UNC, atau server dialihkan ke lokasi lain, perubahan segera diambil oleh server Web. Hanya perubahan global yang memengaruhi beberapa situs dan aplikasi yang akan menyebabkannya didaur ulang, tetapi jika perubahan dilakukan dalam cakupan yang dilokalkan, maka situs dan aplikasi lainnya tidak akan dimulai ulang.
Lampiran 1: Mengakses File Redirection.config Secara Terprogram untuk Membaca Nilai
Langkah ini menyediakan sampel cara mengakses file redirection.config secara terprogram dengan memanfaatkan COM AHADMIN API baru. Gunakan API AHADMIN COM untuk mengimplementasikan API ini dari kode asli atau dari skrip dan kode terkelola.
Untuk membaca nilai secara terprogram
Buat file teks dan simpan dengan ekstensi .js. Skrip berikut ini menyediakan sampel cara membaca atribut, nama server, nama pengguna, dan kata sandi yang diaktifkan untuk lingkungan Anda:
try { var config = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" ); var section = config.GetAdminSection( "configurationRedirection", "MACHINE/REDIRECTION" ); WScript.Echo( "Current redirection:" ); WScript.Echo( "enabled = " + section.Properties.Item( "enabled" ).Value ); WScript.Echo( "path = " + section.Properties.Item( "path" ).Value ); WScript.Echo( "user = " + section.Properties.Item( "userName" ).Value ); WScript.Echo( "pass = " + section.Properties.Item( "password" ).Value ); } catch(e) { WScript.Echo(e.number); WScript.Echo(e.description); }
Simpan file redirection.js Anda. Anda sekarang dapat menjalankan file ini dari prompt perintah karena Windows Script Host (WSH).
Lampiran 2: Mengakses file redirection.config Secara Terprogram untuk Menulis Nilai
Langkah ini menyediakan sampel cara mengakses file redirection.config secara terprogram dengan memanfaatkan COM AHADMIN API baru. Gunakan API ini dari kode asli atau dari skrip dan kode terkelola dari objek COM-nya.
Untuk menulis nilai secara terprogram
Buat file teks dan simpan dengan ekstensi .js. Skrip berikut ini menyediakan sampel cara menulis atribut, nama server, nama pengguna, dan kata sandi yang diaktifkan untuk lingkungan Anda:
try { var config = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" ); config.CommitPath = "MACHINE/REDIRECTION"; var section = config.GetAdminSection( "configurationRedirection","MACHINE/REDIRECTION" ); section.Properties.Item( "enabled" ).Value = true; section.Properties.Item( "path" ).Value = "\\\\somemachine\\sharefile://folder/"; section.Properties.Item( "userName" ).Value = "testuser"; section.Properties.Item( "password" ).Value = "testuser"; config.CommitChanges(); } catch(e) { WScript.Echo(e.number); WScript.Echo(e.description); }
Simpan file redirection.js Anda.
Anda sekarang dapat menjalankan file ini dari prompt perintah karena Windows Script Host (WSH).
Lampiran 3: Menangani Properti Terenkripsi khusus Mesin
Secara default, IIS menyertakan dua penyedia utama untuk mengamankan properti. Penyedia ini terletak di bagian konfigurasi configProtectedData file <applicationHost.config dan didefinisikan dalam <elemen penyedia>.>
AesProvider khusus untuk menangani enkripsi dan dekripsi untuk properti yang ada di bagian system.webServer.
IISWASOnlyRsaProvider khusus untuk menangani enkripsi dan dekripsi untuk properti yang ada di bagian system.applicationHost.
Kunci ini ada di kontainer kunci iisConfigurationKey dan iisWasKey dan khusus komputer. Dalam skenario farm Web, jika enkripsi diperlukan, maka kunci dari satu komputer - biasanya kunci yang membuat file applicationHost.config - diekspor dan dibawa ke komputer lain sehingga properti aman dapat didekripsi dan digunakan oleh server Web.
Langkah-langkah
Buka prompt perintah. Navigasikan ke direktori Kerangka Kerja, yang terletak di
%windir%\Microsoft.NET\Framework\v2.0.50727\
secara default.Catatan
Sebagai referensi, kunci komputer untuk sistem terletak di %ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys\
Gunakan alat aspnet_regiis untuk mengekspor kunci. Perintah untuk mentransfer kunci konfigurasi dinyatakan di bawah ini. Sakelar px mengidentifikasi bahwa Anda ingin mengekspor pasangan kunci RSA. Sakelar pri mengidentifikasi bahwa Anda juga ingin menyertakan kunci privat dan publik.
Identifikasi switch ini diperlukan untuk melakukan enkripsi dan dekripsi; jika tidak, Anda hanya dapat mengenkripsi data dengan kunci yang diekspor. Parameter setelah -px adalah nama kontainer kunci yang akan diekspor. Dalam hal ini, ini adalah kontainer kunci "iisConfigurationKey". Kontainer kunci lain yang digunakan IIS adalah kontainer kunci "iisWasKey".
aspnet_regiis -px "iisConfigurationKey" "D:\iisConfigurationKey.xml" -pri
Setelah ekspor berhasil diselesaikan, salin file XML ke komputer lain di kluster untuk bersiap mengimpornya di sana.
Navigasi ke direktori Kerangka Kerja dan gunakan alat aspnet_regiis untuk mengimpor kunci dari file XML. Perintah untuk menyelesaikan transfer untuk kunci dinyatakan di bawah ini.
Parameter setelah -pi adalah nama kontainer kunci yang akan diimpor. Dalam hal ini, ini adalah kontainer kunci "iisConfigurationKey". Kontainer kunci lain yang digunakan IIS adalah kontainer kunci "iisWasKey".
aspnet_regiis -pi "iisConfigurationKey" "D:\iisConfigurationKey.xml"