Szybki start: bezpośredni ruch internetowy w usłudze Azure Application Gateway — interfejs wiersza polecenia platformy Azure

W tym przewodniku Szybki start utworzysz bramę aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure. Następnie przetestujesz go, aby upewnić się, że działa prawidłowo.

Brama aplikacji kieruje ruch internetowy aplikacji do określonych zasobów w puli zaplecza. Odbiorniki są przypisywane do portów, tworzenia reguł i dodawania zasobów do puli zaplecza. Dla uproszczenia w tym artykule użyto prostej konfiguracji z publicznym adresem IP frontonu, podstawowego odbiornika do hostowania pojedynczej lokacji w bramie aplikacji, podstawowej reguły routingu żądań i dwóch maszyn wirtualnych w puli zaplecza.

application gateway resources

Możesz również wykonać ten przewodnik Szybki start przy użyciu programu Azure PowerShell lub witryny Azure Portal.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.0.4 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Utwórz grupę zasobów

Na platformie Azure możesz przydzielić powiązane zasoby do grupy zasobów. Utwórz grupę zasobów przy użyciu polecenia az group create.

W poniższym przykładzie pokazano sposób tworzenia grupy zasobów o nazwie myResourceGroupAG w lokalizacji eastus.

az group create --name myResourceGroupAG --location eastus

Tworzenie zasobów sieciowych

Do komunikacji między tworzonymi zasobami platforma Azure potrzebuje sieci wirtualnej. Podsieć bramy aplikacji może zawierać tylko bramy aplikacji. Inne zasoby nie są dozwolone. Możesz utworzyć nową podsieć dla usługi Application Gateway lub użyć istniejącej. W tym przykładzie utworzysz dwie podsieci: jedną dla bramy aplikacji, a drugą dla serwerów zaplecza. Adres IP frontonu usługi Application Gateway można skonfigurować tak, aby był publiczny lub prywatny zgodnie z twoim przypadkiem użycia. W tym przykładzie wybierzesz publiczny adres IP frontonu.

Uwaga

Fronton usługi Application Gateway obsługuje teraz adresy IP z podwójnym stosem (publiczna wersja zapoznawcza). Teraz można utworzyć maksymalnie cztery adresy IP frontonu: dwa adresy IPv4 (publiczne i prywatne) i dwa adresy IPv6 (publiczne i prywatne).

Aby utworzyć sieć wirtualną i podsieć, użyj polecenia az network vnet create. Uruchom polecenie az network public-ip create , aby utworzyć publiczny adres IP.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.21.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.21.0.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet   \
  --address-prefix 10.21.1.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

Tworzenie serwerów zaplecza

Zaplecze może mieć karty sieciowe, zestawy skalowania maszyn wirtualnych, publiczne adresy IP, wewnętrzne adresy IP, w pełni kwalifikowane nazwy domen (FQDN) i wielodostępne zaplecza, takie jak usługa aplikacja systemu Azure Service. W tym przykładzie utworzysz dwie maszyny wirtualne do użycia jako serwery zaplecza dla bramy aplikacji. Zainstaluj również serwer NGINX na maszynach wirtualnych, aby przetestować bramę aplikacji.

Tworzenie dwóch maszyn wirtualnych

Zainstaluj serwer internetowy NGINX na maszynach wirtualnych, aby sprawdzić, czy brama aplikacji została pomyślnie utworzona. Aby zainstalować serwer NGINX i uruchomić aplikację Node.js „Hello World” na maszynie wirtualnej z systemem Linux, możesz użyć pliku konfiguracji cloud-init. Aby uzyskać więcej informacji na temat pliku cloud-init, zobacz Cloud-init support for virtual machines in Azure (Obsługa pliku cloud-init na potrzeby maszyn wirtualnych na platformie Azure).

W usłudze Azure Cloud Shell skopiuj i wklej następującą konfigurację do pliku o nazwie cloud-init.txt. Wprowadź ciąg editor cloud-init.txt w celu utworzenia pliku.

#cloud-config
package_upgrade: true
packages:
  - nginx
  - nodejs
  - npm
write_files:
  - owner: www-data:www-data
  - path: /etc/nginx/sites-available/default
    content: |
      server {
        listen 80;
        location / {
          proxy_pass http://localhost:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
      }
  - owner: azureuser:azureuser
  - path: /home/azureuser/myapp/index.js
    content: |
      var express = require('express')
      var app = express()
      var os = require('os');
      app.get('/', function (req, res) {
        res.send('Hello World from host ' + os.hostname() + '!')
      })
      app.listen(3000, function () {
        console.log('Hello world app listening on port 3000!')
      })
runcmd:
  - service nginx restart
  - cd "/home/azureuser/myapp"
  - npm init
  - npm install express -y
  - nodejs index.js

Utwórz interfejsy sieciowe za pomocą polecenia az network nic create. Aby utworzyć maszyny wirtualne, użyj polecenia az vm create.

for i in `seq 1 2`; do
  az network nic create \
    --resource-group myResourceGroupAG \
    --name myNic$i \
    --vnet-name myVNet \
    --subnet myBackendSubnet
  az vm create \
    --resource-group myResourceGroupAG \
    --name myVM$i \
    --nics myNic$i \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt
done

Tworzenie bramy aplikacji

Utwórz bramę aplikacji przy użyciu polecenia az network application-gateway create. Podczas tworzenia bramy aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure należy podać informacje o konfiguracji, takie jak pojemność, jednostka SKU i ustawienia protokołu HTTP. Następnie platforma Azure dodaje prywatne adresy IP interfejsów sieciowych jako serwery w puli zaplecza bramy aplikacji.

address1=$(az network nic show --name myNic1 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
address2=$(az network nic show --name myNic2 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --capacity 2 \
  --sku Standard_v2 \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$address1" "$address2" \
  --priority 100

Tworzenie bramy aplikacji na platformie Azure może potrwać do 30 minut. Po jej utworzeniu można wyświetlić następujące ustawienia w sekcji Ustawienia strony Application Gateway:

  • appGatewayBackendPool: znajduje się na stronie Pule zaplecza. Określa wymaganą pulę zaplecza.
  • appGatewayBackendHttp Ustawienia: znajduje się na stronie ustawień HTTP. Określa, że brama aplikacji używa portu 80 i protokołu HTTP na potrzeby komunikacji.
  • appGatewayHttpListener: znajduje się na stronie Odbiorniki. Określa domyślny odbiornik skojarzony z pulą appGatewayBackendPool.
  • appGatewayFrontendIP: znajduje się na stronie Konfiguracji adresów IP frontonu. Przypisuje on adres myAGPublicIPAddress do odbiornika appGatewayHttpListener.
  • rule1: znajduje się na stronie Reguły . Określa domyślną regułę rozsyłania skojarzoną z odbiornikiem appGatewayHttpListener.

Testowanie bramy aplikacji

Mimo że platforma Azure nie wymaga internetowego serwera NGINX do utworzenia bramy aplikacji, zainstalowano go w ramach tego przewodnika Szybki start, aby sprawdzić, czy platforma Azure pomyślnie utworzyła bramę aplikacji. Aby uzyskać publiczny adres IP nowej bramy aplikacji, użyj polecenia az network public-ip show.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Skopiuj i wklej publiczny adres IP na pasku adresu przeglądarki. ​ Test application gateway

Po odświeżeniu przeglądarki powinna zostać wyświetlona nazwa drugiej maszyny wirtualnej. Oznacza to, że brama aplikacji została pomyślnie utworzona i może nawiązać połączenie z zapleczem.

Czyszczenie zasobów

Jeśli nie potrzebujesz już zasobów utworzonych za pomocą bramy aplikacji, użyj az group delete polecenia , aby usunąć grupę zasobów. Usunięcie grupy zasobów spowoduje również usunięcie bramy aplikacji i wszystkich powiązanych z nią zasobów.

az group delete --name myResourceGroupAG

Następne kroki