Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir uygulama ağ geçidi oluştururken birden çok web sitesi barındırmayı yapılandırmak için Azure CLI'yi kullanabilirsiniz. Bu makalede, sanal makinelerin ölçek kümelerini kullanarak arka uç adres havuzlarını tanımlarsınız. Ardından, sahip olduğunuz etki alanlarına göre dinleyiciler ve kuralları, web trafiğinin havuzlardaki uygun sunuculara ulaşmasını sağlamak amacıyla yapılandırırsınız. Bu makalede, birden çok etki alanının sahibi olduğunuz varsayılır ve www.contoso.com ve www.fabrikam.comörnekleri kullanılır.
Bu makalede şunların nasıl yapılacağını öğreneceksiniz:
- Ağı ayarlama
- Uygulama ağ geçidi oluşturma
- Arka uç dinleyicileri oluşturun
- Yönlendirme kuralları oluşturma
- Arka uç havuzlarıyla Sanal Makine Ölçek Kümeleri Oluştur
- Etki alanınızda bir CNAME kaydı oluşturma
İsterseniz Azure PowerShell kullanarak bu yordamı tamamlayabilirsiniz.
Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'i kullanmaya başlama.
CLI referans komutlarını yerel olarak çalıştırmayı tercih ediyorsanız, Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalışıyorsanız, Azure CLI'yi bir Docker konteynerinde çalıştırmayı düşünün. Daha fazla bilgi için Azure CLI'nin bir Docker konteynerında nasıl çalıştırılacağını inceleyin.
Yerel bir kurulum kullanıyorsanız, az login komutunu kullanarak Azure CLI'ye giriş yapın. Kimlik doğrulama işlemini tamamlamak için, terminalinizde görüntülenen adımları takip edin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'da kimlik doğrulaması.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
Yüklü olan sürümü ve bağımlı kütüphaneleri bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
- Bu öğretici, Azure CLI'nın 2.0.4 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.
Bir kaynak grubu oluşturun
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. az group create ile bir kaynak grubu oluşturun.
Aşağıdaki örnek eastus konumunda myResourceGroupAG adlı bir kaynak grubu oluşturur.
az group create --name myResourceGroupAG --location eastus
Ağ kaynakları oluşturma
az network vnet create komutunu kullanarak myAGSubnet adlı sanal ağı ve alt ağı oluşturun. Ardından az network vnet subnet create komutunu kullanarak arka uç sunucuları için gereken alt ağı ekleyebilirsiniz. az network public-ip create komutunu kullanarak myAGPublicIPAddress adlı genel IP adresini oluşturun.
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
Uygulama ağ geçidi oluşturma
Uygulama ağ geçidini oluşturmak için az network application-gateway create komutunu kullanabilirsiniz. Azure CLI kullanarak bir uygulama ağ geçidi oluşturduğunuzda, kapasite, sku ve HTTP ayarları gibi yapılandırma bilgilerini belirtirsiniz. Uygulama ağ geçidi, myAGSubnet’e ve daha önce oluşturduğunuz myAGPublicIPAddress’e atanır.
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
Uygulama ağ geçidinin oluşturulması birkaç dakika sürebilir. Uygulama ağ geçidi oluşturulduktan sonra şu yeni özellikleri görürsünüz:
- appGatewayBackendPool: Bir uygulama ağ geçidi en az bir arka uç adres havuzuna sahip olmalıdır.
- appGatewayBackendHttpSettings: İletişim için 80 numaralı bağlantı noktasının ve HTTP protokolünün kullanıldığını belirtir.
- appGatewayHttpListener: appGatewayBackendPool ile ilişkili varsayılan dinleyicidir.
- appGatewayFrontendIP - appGatewayHttpListener’a myAGPublicIPAddress’i atar.
- kural 1 - appGatewayHttpListener ile ilişkili varsayılan yönlendirme kuralıdır.
Arka uç havuzlarını ekleyin
az network application-gateway address-pool create komutunu kullanarak arka uç sunucularını içermesi için gereken arka uç havuzlarını ekleyin
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
Dinleyiciler ekleme
az network application-gateway http-listener create komutunu kullanarak trafiği yönlendirmek için gereken dinleyicileri ekleyin.
Uyarı
Application Gateway veya WAF v2 SKU ile dinleyici başına en fazla 5 host adı yapılandırabilir ve konak adında joker karakterler kullanabilirsiniz. Daha fazla bilgi için dinleyicide joker konak adları hakkında daha fazla bilgi edinin.
Azure CLI kullanarak bir dinleyicide birden çok ana bilgisayar adı ve joker karakter kullanmak için --host-names yerine --host-name kullanmanız gerekir. Ana bilgisayar adları ile, boşlukla ayrılmış değerler olarak en fazla beş ana bilgisayar adı belirtebilirsiniz. Örneğin, --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
Yönlendirme kuralları ekleme
Kural önceliği alanı kullanılmazsa kurallar listelendikleri sırayla işlenir. Trafik, özgüllük fark etmeksizin eşleşen ilk kural kullanılarak yönlendirilir. Örneğin, aynı bağlantı noktasında temel bir dinleyici kullanan bir kuralınız ve çok siteli dinleyici kullanan bir kuralınız varsa çok siteli kuralın beklendiği gibi çalışması için çok siteli dinleyicinin kuralı temel dinleyici kuralından önce listelenmelidir.
Bu örnekte iki yeni kural oluşturacak ve uygulama ağ geçidini dağıttığınızda oluşturulan varsayılan kuralı sileceksiniz. Kuralı az network application-gateway rule create komutunu kullanarak ekleyebilirsiniz.
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
Yönlendirme kurallarına öncelik ekleme
Önce daha belirli kuralların işlenmesini sağlamak için, daha yüksek önceliğe sahip olduklarından emin olmak için kural önceliği alanını kullanın. Kural önceliği alanı tüm mevcut istek yönlendirme kuralları için ayarlanmalıdır ve daha sonra oluşturulan tüm yeni kuralların da bir kural öncelik değerine sahip olması gerekir.
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
Sanal Makine Ölçek Kümeleri oluşturma
Bu örnekte, uygulama ağ geçidindeki üç arka uç havuzunu destekleyen üç Sanal Makine Ölçek Kümesi oluşturacaksınız. Oluşturduğunuz ölçek kümeleri myvmss1, myvmss2 ve myvmss3 olarak adlandırılır. Her bir ölçek kümesi IIS yükleyeceğiniz iki sanal makine örneği içerir.
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
NGINX yükleme
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
Etki alanınızda bir CNAME kaydı oluşturma
Uygulama ağ geçidi genel IP adresiyle oluşturulduktan sonra DNS adresini alabilir ve etki alanınızda bir CNAME kaydı oluşturmak için kullanabilirsiniz. Uygulama ağ geçidinin DNS adresini almak için az network public-ip show komutunu kullanabilirsiniz. DNSSetting için fqdn değerini kopyalayın ve bu değeri oluşturduğunuz CNAME kaydının değeri olarak kullanın.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Uygulama ağ geçidi yeniden başlatıldığında sanal IP (VIP) değişebileceğinden A kayıtlarının kullanılması önerilmez.
Uygulama ağ geçidini test edin
Tarayıcınızın adres çubuğuna, etki alanı adınızı girin. Örneğin http://www.contoso.com.
Adresi diğer etki alanınızla değiştirin ve aşağıdaki örneğe benzer bir şey göreceksiniz.
Kaynakları temizle
Artık gerekli olmadığında kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları silin.
az group delete --name myResourceGroupAG
Sonraki Adımlar
URL yol tabanlı yönlendirme kurallarıyla uygulama ağ geçidi oluşturma