次の方法で共有


アプリケーション ゲートウェイを作成し、HTTP ヘッダーを書き換える

Azure PowerShell を使用して、新しい自動スケーリングとゾーン冗長アプリケーション ゲートウェイ SKU の作成時に HTTP 要求ヘッダーと応答ヘッダーを書き換える規則を構成できます。

この記事では、次の方法について説明します。

  • 自動スケーリング仮想ネットワークを作成する
  • 予約済みパブリック IP を作成する
  • アプリケーション ゲートウェイ インフラストラクチャを設定する
  • http ヘッダー書き換え規則の構成を指定する
  • オートスケールの設定
  • アプリケーション ゲートウェイの作成
  • アプリケーション ゲートウェイをテストする

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

この記事では、Azure PowerShell をローカルで実行する必要があります。 Az モジュール バージョン 1.0.0 以降がインストールされている必要があります。 Import-Module Az実行してからGet-Module Azバージョンを見つけます。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell のバージョンを確認したら、 Login-AzAccount を実行して Azure との接続を作成します。

Azure にサインインする

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

リソース グループを作成する

使用可能な場所のいずれかにリソース グループを作成します。

$location = "East US 2"
$rg = "<rg name>"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location

仮想ネットワークを作成する

自動スケール アプリケーション ゲートウェイ用の専用サブネットを 1 つ持つ仮想ネットワークを作成します。 現在、各専用サブネットにデプロイできる自動スケール アプリケーション ゲートウェイは 1 つだけです。

#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
       -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2

予約済みパブリック IP を作成する

PublicIPAddress の割り当て方法を Static として指定します。 自動スケール アプリケーション ゲートウェイ VIP は静的にすることしかできません。 動的 IP はサポートされていません。 Standard PublicIpAddress SKU のみがサポートされています。

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -location $location -AllocationMethod Static -Sku Standard

詳細を取得する

ローカル オブジェクト内のリソース グループ、サブネット、および IP の詳細を取得して、アプリケーション ゲートウェイの IP 構成の詳細を作成します。

$resourceGroup = Get-AzResourceGroup -Name $rg
$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

インフラストラクチャを構成する

既存の Standard アプリケーション ゲートウェイと同じ形式で、IP 構成、フロントエンド IP 構成、バックエンド プール、HTTP 設定、証明書、ポート、リスナーを構成します。 新しい SKU は、Standard SKU と同じオブジェクト モデルに従います。

$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPCOnfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
       -BackendIPAddresses testbackend1.westus.cloudapp.azure.com, testbackend2.westus.cloudapp.azure.com
$fp01 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80

$listener01 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
             -Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp01

$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
          -Port 80 -Protocol Http -CookieBasedAffinity Disabled

HTTP ヘッダー書き換え規則の構成を指定する

http ヘッダーを書き換えるために必要な新しいオブジェクトを構成します。

  • RequestHeaderConfiguration: このオブジェクトは、書き換える要求ヘッダー フィールドと、元のヘッダーを書き換える必要がある新しい値を指定するために使用されます。

  • ResponseHeaderConfiguration: このオブジェクトは、書き換える応答ヘッダー フィールドと、元のヘッダーを書き換える必要がある新しい値を指定するために使用されます。

  • ActionSet: このオブジェクトには、上記で指定した要求ヘッダーと応答ヘッダーの構成が含まれています。

  • RewriteRule: このオブジェクトには、上記で指定したすべての actionSet が 含まれています。

  • RewriteRuleSet- このオブジェクトにはすべての rewriteRules が含まれており、要求ルーティング規則 (基本またはパスベース) にアタッチする必要があります。

    $requestHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "X-isThroughProxy" -HeaderValue "True"
    $responseHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "Strict-Transport-Security" -HeaderValue "max-age=31536000"
    $actionSet = New-AzApplicationGatewayRewriteRuleActionSet -RequestHeaderConfiguration $requestHeaderConfiguration -ResponseHeaderConfiguration $responseHeaderConfiguration    
    $rewriteRule = New-AzApplicationGatewayRewriteRule -Name rewriteRule1 -ActionSet $actionSet    
    $rewriteRuleSet = New-AzApplicationGatewayRewriteRuleSet -Name rewriteRuleSet1 -RewriteRule $rewriteRule
    

ルーティング規則を指定する

要求ルーティング規則を作成します。 作成されると、この書き換え構成はルーティング規則を介してソース リスナーにアタッチされます。 基本的なルーティング規則を使用する場合、ヘッダー書き換え構成はソース リスナーに関連付けられ、グローバル ヘッダーの書き換えです。 パスベースのルーティング規則を使用する場合、ヘッダー書き換え構成は URL パス マップで定義されます。 そのため、サイトの特定のパス領域にのみ適用されます。 以下では、基本的なルーティング規則が作成され、書き換え規則セットがアタッチされます。

$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -RewriteRuleSet $rewriteRuleSet

オートスケールの設定

これで、アプリケーション ゲートウェイの自動スケール構成を指定できます。 2 種類の自動スケール構成がサポートされています。

  • 固定容量モード。 このモードでは、アプリケーション ゲートウェイは自動スケールを行っず、固定スケール ユニット容量で動作します。

    $sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2 -Capacity 2
    
  • 自動スケール モード。 このモードでは、アプリケーション ゲートウェイはアプリケーション トラフィック パターンに基づいて自動スケーリングします。

    $autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
    $sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
    

アプリケーション ゲートウェイの作成

アプリケーション ゲートウェイを作成し、冗長性ゾーンと自動スケール構成を含めます。

$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 -ResourceGroupName $rg -Location $location -BackendAddressPools $pool -BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig -FrontendIpConfigurations $fip -FrontendPorts $fp01 -HttpListeners $listener01 -RequestRoutingRules $rule01 -Sku $sku -AutoscaleConfiguration $autoscaleConfig -RewriteRuleSet $rewriteRuleSet

アプリケーション ゲートウェイをテストする

Get-AzPublicIPAddress を使用して、アプリケーション ゲートウェイのパブリック IP アドレスを取得します。 パブリック IP アドレスまたは DNS 名をコピーし、ブラウザーのアドレス バーに貼り付けます。

Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP

リソースをクリーンアップする

まず、アプリケーション ゲートウェイで作成されたリソースを調べる。 その後、不要になったら、 Remove-AzResourceGroup コマンドを使用して、リソース グループ、アプリケーション ゲートウェイ、およびすべての関連リソースを削除できます。

Remove-AzResourceGroup -Name $rg

次のステップ