Azure CLI kullanarak web trafiğini URL'ye göre yönlendirme
Web trafiğini yöneten bir BT yöneticisi olarak, müşterilerinizin ve kullanıcılarınızın ihtiyaç duydukları bilgileri mümkün olan en kısa sürede almasına yardımcı olmak istiyorsunuz. Müşteri deneyimini iyileştirmenin bir yolu da farklı türlerdeki web trafiğini farklı sunucu kaynaklarına yönlendirmektir. Bu makalede, uygulamanızdan farklı trafik türleri için Application Gateway yönlendirmesini ayarlamak ve yapılandırmak için Azure CLI'yi nasıl kullanacağınız gösterilmektedir. Yönlendirme, trafiği URL'ye göre farklı sunucu havuzlarına yönlendirir.
Bu makalede şunları öğreneceksiniz:
- İhtiyacınız olan ağ kaynakları için kaynak grubu oluşturma
- Ağ kaynaklarını oluşturma
- Uygulamanızdan gelen trafik için bir uygulama ağ geçidi oluşturma
- Farklı trafik türleri için sunucu havuzlarını ve yönlendirme kurallarını belirtme
- Otomatik ölçeklendirme gerçekleştirmek için her havuzda bir ölçek kümesi oluşturma
- Farklı trafik türlerinin doğru havuza gittiğini doğrulamak için bir test gerçekleştirme
İsterseniz, Azure PowerShell veya Azure portalını kullanarak bu yordamı tamamlayabilirsiniz.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İ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.
Yüklü sürümü ve bağımlı kitaplıkları 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.
Kaynak grubu oluşturma
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. az group create
komutunu kullanarak 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 myVNet adlı sanal ağı ve myAGSubnet adlı alt ağı oluşturun. Ardından kullanarak az network vnet subnet create
arka uç sunucuları için gereken myBackendSubnet adlı bir alt ağ ekleyin. 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
URL eşleme ile uygulama ağ geçidi oluşturma
az network application-gateway create
komutunu kullanarak myAppGateway adlı bir uygulama ağ geçidi oluşturun. 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 ve 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 100
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:
Özellik | Açıklama |
---|---|
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 protokollerinin kullanıldığını belirtir. |
appGatewayHttpListener | appGatewayBackendPool ile ilişkili varsayılan dinleyicidir |
appGatewayFrontendIP | appGatewayHttpListener’a myAGPublicIPAddress’i atar. |
rule1 | appGatewayHttpListener ile ilişkili varsayılan yönlendirme kuralıdır. |
Görüntü ve video arka uç havuzlarını ve bağlantı noktasını ekleme
az network application-gateway address-pool create
komutunu kullanarak imagesBackendPool ve videoBackendPool adlı arka uç havuzlarını uygulama ağ geçidinize ekleyin. az network application-gateway frontend-port create
komutunu kullanarak havuzlar için ön uç bağlantı noktasını ekleyin.
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name imagesBackendPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name videoBackendPool
az network application-gateway frontend-port create \
--port 8080 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name port8080
Arka uç dinleyicisi ekleme
az network application-gateway http-listener create
komutunu kullanarak, trafiği yönlendirmek için gereken backendListener adlı arka uç dinleyicisini ekleyin.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port port8080 \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
URL yol eşlemesini ekleme
URL yol eşlemeleri belirli URL'lerin belirli arka uç havuzlarına yönlendirilmesini sağlar. az network application-gateway url-path-map create
ve az network application-gateway url-path-map rule create
komutlarını kullanarak imagePathRule ve videoPathRule adlı URL yol eşlemelerini oluşturun.
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name myPathMap \
--paths /images/* \
--resource-group myResourceGroupAG \
--address-pool imagesBackendPool \
--default-address-pool appGatewayBackendPool \
--default-http-settings appGatewayBackendHttpSettings \
--http-settings appGatewayBackendHttpSettings \
--rule-name imagePathRule
az network application-gateway url-path-map rule create \
--gateway-name myAppGateway \
--name videoPathRule \
--resource-group myResourceGroupAG \
--path-map-name myPathMap \
--paths /video/* \
--address-pool videoBackendPool \
--http-settings appGatewayBackendHttpSettings
Yönlendirme kuralı ekleme
Yönlendirme kuralı URL eşlemelerini oluşturduğunuz dinleyici ile ilişkilendirir. az network application-gateway rule create
komutunu kullanarak rule2 adlı bir kural ekleyin.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name rule2 \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map myPathMap \
--address-pool appGatewayBackendPool \
--priority 200
Sanal Makine Ölçek Kümeleri oluşturma
Bu makalede, oluşturduğunuz üç arka uç havuzunu destekleyen üç Sanal Makine Ölçek Kümeleri 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 NGINX yükleyeceğiniz iki sanal makine örneği içerir.
for i in `seq 1 3`; do
if [ $i -eq 1 ]
then
poolName="appGatewayBackendPool"
fi
if [ $i -eq 2 ]
then
poolName="imagesBackendPool"
fi
if [ $i -eq 3 ]
then
poolName="videoBackendPool"
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_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
NGINX yükleme
for i in `seq 1 3`; 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
Uygulama ağ geçidini test etme
Uygulama ağ geçidinin genel IP adresini almak için az network public-ip show komutunu kullanın. Genel IP adresini kopyalayıp tarayıcınızın adres çubuğuna yapıştırın. Örneğin http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
veya http://40.121.222.19:8080/video/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
URL'yi http://< ip-address>:8080/images/test.html olarak değiştirin ve IP adresinizi ip-adresi> olarak <değiştirin ve aşağıdaki örneğe benzer bir şey görmeniz gerekir:
URL'yi http://< ip-address>:8080/video/test.html olarak değiştirin, IP adresi yerine <IP adresinizi> yazın ve aşağıdaki örneğe benzer bir şey görmeniz gerekir.
Kaynakları temizleme
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 yolu tabanlı yönlendirme ile bir uygulama ağ geçidi oluşturma