Hosting multi-situs Application Gateway

Hosting multi-situs memungkinkan Anda mengonfigurasi lebih dari satu aplikasi web pada port gateway aplikasi yang sama menggunakan pendengar yang menghadap publik. Ini memungkinkan Anda untuk mengkonfigurasi topologi yang lebih efisien untuk penyebaran Anda dengan menambahkan hingga 100 + situs web ke satu gateway aplikasi. Setiap situs web dapat diarahkan ke kumpulan backend-nya sendiri. Misalnya, tiga domain, contoso.com, fabrikam.com, dan adatum.com, arahkan ke alamat IP gateway aplikasi. Anda akan membuat tiga pendengar multi-situs dan mengonfigurasi setiap pendengar untuk pengaturan port dan protokol masing-masing.

Anda juga dapat menentukan nama host wildcard di pendengar multi-situs dan hingga 5 nama host per pendengar. Untuk mempelajari selengkapnya, lihat nama host kartubebas di pendengar.

Multi-site Application Gateway

Penting

Aturan diproses sesuai urutan yang tercantum di portal untuk v1 SKU. Untuk v2 SKU, gunakan prioritas aturan untuk menentukan urutan pemrosesan. Sangat disarankan untuk mengonfigurasi pendengar multi-situs terlebih dahulu sebelum mengonfigurasi pendengar dasar. Tindakan ini memastikan lalu lintas sudah dialihkan ke ujung belakang dengan benar. Jika pendengar dasar dicantumkan terlebih dahulu dan cocok dengan permintaan masuk, maka akan diproses oleh pendengar tersebut.

Permintaan untuk http://contoso.com dirutekan ke ContosoServerPool, dan http://fabrikam.com dirutekan ke FabrikamServerPool.

Demikian pula, dua subdomain dari domain induk yang sama dapat dihosting pada penyebaran gateway aplikasi yang sama. Misalnya, Anda dapat melakukan host http://blog.contoso.com dan http://app.contoso.com pada penyebaran gateway aplikasi tunggal.

Perintah evaluasi aturan Perutean Permintaan

Saat Anda menggunakan pendengar multi-situs untuk memastikan bahwa lalu lintas klien dirutekan ke backend yang akurat, penting bahwa aturan perutean permintaan ada dalam urutan yang benar. Misalnya, jika Anda memiliki 2 pendengar dengan nama host terkait dan shop.contoso.com, pendengar dengan shop.contoso.com nama host harus diproses *.contoso.com sebelum pendengar dengan *.contoso.com. Jika pendengar dengan *.contoso.com diproses terlebih dahulu, maka tidak ada lalu lintas klien yang diterima oleh pendengar yang lebih spesifik shop.contoso.com .

Urutan aturan dapat dibuat dengan memberikan nilai bidang Prioritas ke aturan perutean permintaan yang terkait dengan pendengar. Anda dapat menentukan nilai integer dari 1 hingga 20000 dengan 1 menjadi prioritas tertinggi dan 20000 menjadi prioritas terendah. Jika lalu lintas klien masuk cocok dengan beberapa pendengar, aturan perutean permintaan dengan prioritas tertinggi digunakan untuk melayani permintaan. Setiap aturan perutean permintaan harus memiliki nilai prioritas yang unik.

Bidang prioritas hanya berdampak pada urutan evaluasi aturan perutean permintaan, ini tidak akan mengubah urutan evaluasi aturan berbasis jalur dalam PathBasedRouting aturan perutean permintaan.

Catatan

Untuk menggunakan prioritas aturan, Anda harus menentukan nilai bidang prioritas aturan untuk semua aturan perutean permintaan yang ada. Setelah bidang prioritas aturan digunakan, aturan perutean baru apa pun yang dibuat harus memiliki nilai bidang prioritas aturan sebagai bagian dari konfigurasinya.

Penting

Dimulai dengan API versi 2021-08-01, bidang prioritas aturan adalah bidang wajib dalam aturan perutean permintaan. Nilai bidang prioritas aturan untuk aturan perutean permintaan yang ada, berdasarkan urutan evaluasi saat ini sebagai bagian dari panggilan PUT pertama, secara otomatis diisi jika pembaruan konfigurasi diterapkan menggunakan API versi 2021-08-01 ke atas, portal, Azure PowerShell, dan Azure CLI. Pembaruan di masa mendatang untuk meminta aturan perutean harus memiliki bidang prioritas aturan yang disediakan sebagai bagian dari konfigurasi.

Nama host kartubebas di pendengar

Application Gateway memungkinkan perutean berbasis host menggunakan pendengar HTTP multi-situs. Sekarang, Anda memiliki kemampuan untuk menggunakan karakter kartubebas seperti tanda bintang (*) dan tanda tanya (?) dalam nama host, dan hingga 5 nama host per pendengar HTTP multi-situs. Contohnya, *.contoso.com.

Dengan menggunakan karakter kartubebas dalam nama host, Anda dapat mencocokkan beberapa nama host dalam satu pendengar. Misalnya, *.contoso.com dapat cocok dengan ecom.contoso.com, b2b.contoso.com serta customer1.b2b.contoso.com dan lainnya. Dengan menggunakan larik nama host, Anda dapat mengonfigurasi lebih dari satu nama host untuk pendengar, untuk merutekan permintaan ke kumpulan ujung belakang. Misalnya, listener dapat berisi contoso.com, fabrikam.com yang menerima permintaan untuk kedua nama host.

Wildcard Listener

Catatan

Fitur ini hanya tersedia untuk Standard_v2 dan WAF_v2 SKU Application Gateway.

Di Azure PowerShell, Anda harus menggunakan -HostNames alih-alih -HostName. Dengan HostNames, Anda dapat menyebutkan hingga 5 nama host sebagai nilai yang dipisahkan koma dan menggunakan karakter kartubebas. Contohnya, -HostNames "*.contoso.com","*.fabrikam.com".

Di Azure CLI, Anda harus menggunakan --host-names alih-alih --host-name. Dengan nama host, Anda dapat menyebutkan hingga 5 nama host sebagai nilai yang dipisahkan koma dan menggunakan karakter kartubebas. Contohnya, --host-names "*.contoso.com,*.fabrikam.com".

Di portal Azure, di bawah pendengar multi-situs, Anda harus memilih jenis host Multi-kartubebas untuk menyebutkan hingga lima nama host dengan karakter kartubebas yang diizinkan.

Wildcard Listener UI

Karakter yang diperbolehkan di bidang nama host

  • (A-Z,a-z,0-9) - karakter alfanumerik
  • - - tanda hubung atau minus
  • . - periode sebagai pemisah
  • * - dapat mencocokkan dengan beberapa karakter dalam rentang yang diizinkan
  • ? - dapat mencocokkan dengan satu karakter dalam rentang yang diizinkan

Kondisi untuk menggunakan karakter kartubebas dan beberapa nama host di pendengar

  • Anda hanya dapat menyebutkan hingga 5 nama host dalam satu pendengar
  • Tanda bintang * hanya dapat disebutkan sekali dalam komponen nama gaya domain atau nama host. Misalnya, component1*.component2*.component3. (*.contoso-*.com) valid.
  • Hanya boleh ada hingga dua tanda bintang * dalam satu nama host. Misalnya, *.contoso.* valid dan *.contoso.*.*.com tidak valid.
  • Hanya boleh ada maksimal 4 karakter kartubebas dalam satu nama host. Misalnya, ????.contoso.com, w??.contoso*.edu.* valid, tetapi ????.contoso.* tidak valid.
  • Menggunakan tanda bintang * dan tanda tanya ? secara bersamaan dalam satu komponen nama host (*? atau ?* atau **) tidak valid. Contohnya, *?.contoso.com dan **.contoso.com tidak valid.

Pertimbangan dan batasan penggunaan kartubebas atau beberapa nama host dalam pendengar

  • Penghentian SSL dan SSL End-to-End mengharuskan Anda mengonfigurasi protokol sebagai HTTPS dan mengunggah sertifikat yang akan digunakan dalam konfigurasi pendengar. Jika ini adalah pendengar multi-situs, Anda juga dapat memasukkan nama host, biasanya ini adalah CN sertifikat SSL. Saat Anda menentukan beberapa nama host di pendengar atau menggunakan karakter kartubebas, Anda harus mempertimbangkan hal berikut:
    • Jika ini adalah nama host kartubebas seperti *.contoso.com, Anda harus mengunggah sertifikat kartubebas dengan CN seperti *.contoso.com
    • Jika beberapa nama host disebutkan dalam pendengar yang sama, Anda harus mengunggah sertifikat SAN (Nama Alternatif Subjek) dengan CN yang cocok dengan nama host yang disebutkan.
  • Anda tidak dapat menggunakan ekspresi reguler untuk menyebutkan nama host. Anda hanya bisa menggunakan karakter kartubebas seperti tanda bintang (*) dan tanda tanya (?) untuk membentuk pola nama host.
  • Untuk pemeriksaan kesehatan backend, Anda tidak dapat mengaitkan beberapa pemeriksaan kustom per pengaturan HTTP. Sebaliknya, Anda dapat memeriksa salah satu situs web di ujung belakang atau menggunakan “127.0.0.1” untuk memeriksa localhost server ujung belakang. Namun, saat Anda menggunakan kartubebas atau beberapa nama host dalam pendengar, permintaan untuk semua pola domain yang ditentukan dirutekan ke kumpulan backend tergantung pada jenis aturan (dasar atau berbasis jalur).
  • Properti "nama host" mengambil satu string sebagai input, di mana Anda hanya dapat menyebutkan satu nama domain non-wildcard. Properti "nama host" mengambil array string sebagai input, di mana Anda dapat menyebutkan hingga 5 nama domain wildcard. Kedua properti ini tidak dapat digunakan sekaligus.

Lihat membuat multi-situs menggunakan Azure PowerShell atau menggunakan Azure CLI untuk panduan langkah demi langkah tentang cara mengonfigurasi nama host kartubebas di pendengar multi-situs.

Pendengar multi-situs untuk pendengar protokol TLS dan TCP

Fitur multi-situs juga tersedia untuk proksi Layer4, tetapi hanya untuk pendengar TLS-nya. Anda dapat mengarahkan lalu lintas untuk setiap aplikasi ke kumpulan backend-nya dengan memberikan nama domain di pendengar TLS. Untuk fungsi fitur multisitus pada pendengar TLS, Application Gateway menggunakan nilai Indikasi Nama Server (SNI) (klien terutama menyajikan ekstensi SNI untuk mengambil sertifikat TLS yang benar). Pendengar TLS multisitus akan memilih nilai SNI ini dari data jabat tangan TLS dari koneksi masuk dan merutekan koneksi tersebut ke kumpulan backend yang sesuai. Koneksi TCP secara inheren tidak memiliki konsep nama host atau nama domain; oleh karena itu, ini tidak tersedia untuk pendengar TCP.

Header host dan Indikasi Nama Server (SNI)

Ada tiga mekanisme umum untuk mengaktifkan hosting multi-situs pada infrastruktur yang sama.

  1. Hosting beberapa aplikasi web masing-masing pada alamat IP yang unik.
  2. Gunakan nama host untuk hosting beberapa aplikasi web pada alamat IP yang sama.
  3. Gunakan port yang berbeda untuk hosting berbeda aplikasi web pada alamat IP yang sama.

Saat ini, Application Gateway mendukung satu alamat IP publik, di mana gateway mendengarkan lalu lintas. Jadi beberapa aplikasi, yang masing-masing memiliki alamat IP sendiri tidak didukung untuk saat ini.

Application Gateway mendukung beberapa aplikasi yang masing-masing mendengarkan pada port yang berbeda, tetapi skenario ini mengharuskan aplikasi untuk menerima lalu lintas pada port nonstandar.

Application Gateway bergantung pada header host HTTP 1.1 untuk hosting lebih dari satu situs web pada port dan alamat IP publik yang sama. Situs yang dihosting di gateway aplikasi juga dapat mendukung offload TLS dengan ekstensi TLS Indikasi Nama Server (SNI). Skenario ini berarti bahwa browser klien dan ujung belakang farm web harus mendukung ekstensi HTTP/1.1 dan TLS seperti yang didefinisikan dalam RFC 6066.

Langkah berikutnya

Pelajari cara mengonfigurasi hosting multi-situs di Application Gateway

Lihat templat Resource Manager menggunakan beberapa hosting situs untuk penyebaran berbasis templat end to end.