Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda bisa menggunakan Azure CLI untuk mengonfigurasi hosting beberapa situs web saat Anda membuat gateway aplikasi. Di artikel ini, Anda akan menentukan kumpulan alamat backend menggunakan set skala mesin virtual. Kemudian, Anda akan mengonfigurasi listener dan aturan berdasarkan domain yang Anda punya untuk memastikan lalu lintas web masuk ke server yang tepat di dalam kumpulan. Artikel ini berasumsi Anda sudah memiliki beberapa domain dan menggunakan contoh www.contoso.com dan www.fabrikam.com.
Dalam artikel ini, Anda akan mempelajari cara:
- Siapkan jaringan
- Membuat gerbang aplikasi
- Membuat listener ujung belakang
- Membuat aturan routing
- Membuat Virtual Machine Scale Sets dengan kumpulan backend
- Membuat data CNAME di domain Anda
Jika berkenan, Anda dapat menyelesaikan prosedur ini menggunakan Azure PowerShell.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan az upgrade.
- Tutorial ini memerlukan Azure CLI versi 2.0.4 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.
Buat grup sumber daya
Grup sumber daya adalah wadah logis tempat sumber daya Azure diterapkan dan dikelola. Membuat grup sumber daya dengan menggunakan az group create.
Contoh berikut membuat grup sumber daya bernama myResourceGroupAG di lokasi eastus.
az group create --name myResourceGroupAG --location eastus
Membuat sumber daya jaringan
Buat jaringan virtual dan subnet bernama myAGSubnet menggunakan az network vnet create. Lalu, Anda dapat menambahkan subnet yang diperlukan oleh server backend menggunakan az network vnet subnet create. Buat alamat IP publik bernama myAGPublicIPAddress menggunakan buat ip-publik jaringan az.
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Membuat gerbang aplikasi
Anda bisa menggunakan az network application-gateway create untuk membuat application gateway. Saat Anda membuat gateway aplikasi menggunakan Azure CLI, Anda menentukan informasi konfigurasi, seperti pengaturan kapasitas, sku, dan HTTP. Gateway aplikasi ditetapkan ke myAGSubnet dan myPublicIPAddress yang Anda buat sebelumnya.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 10
Mungkin perlu waktu beberapa menit untuk membuat gateway aplikasi. Setelah gateway aplikasi dibuat, Anda bisa melihat fitur baru ini:
- appGatewayBackendPool - Gateway aplikasi harus memiliki setidaknya satu kumpulan alamat backend.
- appGatewayBackendHttpSettings - Menentukan bahwa port 80 dan protokol HTTP digunakan untuk komunikasi.
- appGatewayHttpListener - Listener default yang dikaitkan dengan appGatewayBackendPool.
- appGatewayFrontendIP: Menetapkan myAGPublicIPAddress ke appGatewayHttpListener.
- aturan1 - Aturan pengalihan bawaan yang terhubung dengan appGatewayHttpListener.
Tambahkan kolam backend
Tambahkan pool server backend yang diperlukan untuk menampung server backend menggunakan az network application-gateway address-pool create
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name contosoPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name fabrikamPool
Tambahkan listener
Tambahkan pendengar HTTP yang diperlukan untuk merutekan lalu lintas menggunakan az network application-gateway http-listener create.
Catatan
Dengan SKU Application Gateway atau WAF v2, Anda juga dapat mengonfigurasi hingga 5 nama host per listener, dan Anda dapat menggunakan karakter wildcard untuk nama host. Lihat nama host wildcard di listener untuk informasi selengkapnya.
Untuk menggunakan beberapa nama host dan karakter kartu bebas pada listener menggunakan Azure CLI, Anda harus menggunakan --host-names daripada --host-name. Dengan nama host, Anda dapat menyebutkan hingga lima nama host sebagai nilai yang dipisahkan spasi. Misalnya: --host-names "*.contoso.com *.fabrikam.com"
az network application-gateway http-listener create \
--name contosoListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.contoso.com
az network application-gateway http-listener create \
--name fabrikamListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.fabrikam.com
Tambahkan aturan perutean
Aturan diproses sesuai dengan urutan daftar jika bidang prioritas aturan tidak digunakan. Lalu lintas diarahkan menggunakan aturan pertama yang cocok terlepas dari kekhususannya. Misalnya, jika Anda memiliki aturan menggunakan listener dasar dan aturan menggunakan listener multi-situs pada port yang sama, aturan dengan listener multi-situs harus dicantumkan sebelum aturan dengan listener dasar agar aturan multi-situs berfungsi seperti yang diharapkan.
Di contoh ini, Anda akan membuat dua aturan baru dan menghapus aturan default yang dibuat saat Anda menyebarkan gateway aplikasi. Anda dapat menambahkan aturan menggunakan az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--address-pool contosoPool \
--priority 200
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--address-pool fabrikamPool \
--priority 100
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Tambahkan prioritas ke aturan perutean
Untuk memastikan bahwa aturan yang lebih spesifik diproses terlebih dahulu, gunakan bidang prioritas aturan untuk memastikan mereka memiliki prioritas yang lebih tinggi. Bidang prioritas aturan harus ditetapkan untuk semua aturan perutean permintaan yang ada dan setiap aturan baru yang dibuat nanti juga harus memiliki nilai prioritas aturan.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--priority 200 \
--address-pool contosoPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--priority 100 \
--address-pool fabrikamPool
Membuat Set Skala Komputer Virtual
Dalam contoh ini, Anda membuat tiga Virtual Machine Scale Sets yang mendukung tiga kumpulan backend di gateway aplikasi. Set skala yang Anda buat bernama myvmss1, myvmss2, dan myvmss3. Setiap set skala berisi dua instans komputer virtual di tempat Anda menginstal IIS.
for i in `seq 1 2`; do
if [ $i -eq 1 ]
then
poolName="contosoPool"
fi
if [ $i -eq 2 ]
then
poolName="fabrikamPool"
fi
az vmss create \
--name myvmss$i \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username azureuser \
--admin-password Azure123456! \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_D1_v2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Memasang NGINX
for i in `seq 1 2`; do
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss$i \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
"commandToExecute": "./install_nginx.sh" }'
done
Membuat data CNAME di domain Anda
Setelah gateway aplikasi dibuat dengan alamat IP publiknya, Anda bisa mendapatkan alamat DNS dan menggunakannya untuk membuat data CNAME di domain Anda. Untuk mendapatkan alamat DNS gateway aplikasi, Anda dapat menggunakan az network public-ip show. Salin nilai fqdn dari DNSSettings dan gunakan sebagai nilai rekaman CNAME yang Anda buat.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Penggunaan catatan A tidak disarankan karena VIP dapat berubah ketika gateway aplikasi dinyalakan ulang.
Uji gateway aplikasi
Masukkan nama domain Anda ke bilah alamat browser. Misalnya http://www.contoso.com.
Ubah alamat tadi ke domain Anda yang lain dan Anda akan menemukan sesuatu seperti contoh berikut:
Membersihkan sumber daya
Jika tidak lagi diperlukan, hapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait.
az group delete --name myResourceGroupAG
Langkah berikutnya
Buat gerbang aplikasi dengan aturan perutean berbasis jalur URL