DNS-шлюз приложений Azure, возвращающий 307 в бэкэнд-пул - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь настроить шлюз приложений Azure с базовым правилом. Для своего внешнего IP-адреса я создал заданное DNS-имя what.canadacentral.cloudapp.azure.com и загрузил самозаверяющий сертификат. Когда я нажимаю https: // все работает правильно, однако, когда я перехожу на https://whatever.canadacentral.cloudapp.azure.com, он возвращает 307, перенаправляя меня в мой бэкэнд-пул https://whatever.azurewebsites.net/

Это как-то связано с canadacentral.cloudapp.azure.com и мне нужно предоставить собственный DNS?

Вот мой шаблон для шлюза приложений:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "applicationGateways_ExampleDev_name": {
            "defaultValue": "ExampleDev",
            "type": "String"
        },
        "virtualNetworks_Ex_DEV_externalid": {
            "defaultValue": "/subscriptions/xxx/resourceGroups/Example-Ex-DEV/providers/Microsoft.Network/virtualNetworks/Ex-DEV",
            "type": "String"
        },
        "publicIPAddresses_ExampleDevIP_externalid": {
            "defaultValue": "/subscriptions/xxx/resourceGroups/Example-Ex-DEV/providers/Microsoft.Network/publicIPAddresses/ExampleDevIP",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Network/applicationGateways",
            "apiVersion": "2019-09-01",
            "name": "[parameters('applicationGateways_ExampleDev_name')]",
            "location": "canadacentral",
            "properties": {
                "sku": {
                    "name": "WAF_v2",
                    "tier": "WAF_v2"
                },
                "gatewayIPConfigurations": [
                    {
                        "name": "appGatewayIpConfig",
                        "properties": {
                            "subnet": {
                                "id": "[concat(parameters('virtualNetworks_Ex_DEV_externalid'), '/subnets/default')]"
                            }
                        }
                    }
                ],
                "sslCertificates": [
                    {
                        "name": "ApplicationGateway",
                        "properties": {}
                    }
                ],
                "trustedRootCertificates": [],
                "frontendIPConfigurations": [
                    {
                        "name": "appGwPublicFrontendIp",
                        "properties": {
                            "privateIPAllocationMethod": "Dynamic",
                            "publicIPAddress": {
                                "id": "[parameters('publicIPAddresses_ExampleDevIP_externalid')]"
                            }
                        }
                    }
                ],
                "frontendPorts": [
                    {
                        "name": "port_80",
                        "properties": {
                            "port": 80
                        }
                    },
                    {
                        "name": "port_443",
                        "properties": {
                            "port": 443
                        }
                    }
                ],
                "backendAddressPools": [
                    {
                        "name": "ExampleApiDev",
                        "properties": {
                            "backendAddresses": [
                                {
                                    "fqdn": "Exampleapi-dev.azurewebsites.net"
                                }
                            ]
                        }
                    },
                    {
                        "name": "ExampleAuthDev",
                        "properties": {
                            "backendAddresses": [
                                {
                                    "fqdn": "Exampleauth-dev.azurewebsites.net"
                                }
                            ]
                        }
                    },
                    {
                        "name": "ExampleAppDev",
                        "properties": {
                            "backendAddresses": [
                                {
                                    "fqdn": "Exampleapp-dev.azurewebsites.net"
                                }
                            ]
                        }
                    }
                ],
                "backendHttpSettingsCollection": [
                    {
                        "name": "default",
                        "properties": {
                            "port": 80,
                            "protocol": "Http",
                            "cookieBasedAffinity": "Disabled",
                            "pickHostNameFromBackendAddress": true,
                            "affinityCookieName": "ApplicationGatewayAffinity",
                            "requestTimeout": 20,
                            "probe": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/probes/defaultxxx')]"
                            }
                        }
                    }
                ],
                "httpListeners": [
                    {
                        "name": "public-https",
                        "properties": {
                            "frontendIPConfiguration": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/frontendIPConfigurations/appGwPublicFrontendIp')]"
                            },
                            "frontendPort": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/frontendPorts/port_443')]"
                            },
                            "protocol": "Https",
                            "sslCertificate": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/sslCertificates/ApplicationGateway')]"
                            },
                            "hostNames": [],
                            "requireServerNameIndication": false
                        }
                    }
                ],
                "urlPathMaps": [],
                "requestRoutingRules": [
                    {
                        "name": "basic",
                        "properties": {
                            "ruleType": "Basic",
                            "httpListener": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/httpListeners/public-https')]"
                            },
                            "backendAddressPool": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/backendAddressPools/ExampleApiDev')]"
                            },
                            "backendHttpSettings": {
                                "id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('applicationGateways_ExampleDev_name')), '/backendHttpSettingsCollection/default')]"
                            }
                        }
                    }
                ],
                "probes": [
                    {
                        "name": "default07a3e3ac-3c07-40f6-ad80-837f4cdd1009",
                        "properties": {
                            "protocol": "Http",
                            "path": "/swagger/index.html",
                            "interval": 30,
                            "timeout": 30,
                            "unhealthyThreshold": 3,
                            "pickHostNameFromBackendHttpSettings": true,
                            "minServers": 0,
                            "match": {
                                "statusCodes": [
                                    "200-399"
                                ]
                            }
                        }
                    }
                ],
                "rewriteRuleSets": [],
                "redirectConfigurations": [],
                "webApplicationFirewallConfiguration": {
                    "enabled": true,
                    "firewallMode": "Prevention",
                    "ruleSetType": "OWASP",
                    "ruleSetVersion": "3.0",
                    "disabledRuleGroups": [],
                    "exclusions": [],
                    "requestBodyCheck": true,
                    "maxRequestBodySizeInKb": 128,
                    "fileUploadLimitInMb": 50
                },
                "enableHttp2": false,
                "autoscaleConfiguration": {
                    "minCapacity": 0,
                    "maxCapacity": 2
                }
            }
        }
    ]
}

1 Ответ

0 голосов
/ 12 ноября 2019

В этом случае для шлюза приложений V2 у вас есть два решения из этого документа .

  1. Перепишите заголовок местоположения

Установите имя хоста в заголовке местоположения для имени домена шлюза приложения. Для этого создайте правило перезаписи с условием, которое оценивает, содержит ли заголовок местоположения в ответе azurewebsites.net. Он также должен выполнить действие, чтобы переписать заголовок местоположения, чтобы иметь имя хоста шлюза приложения.

Использование настраиваемого доменного имени

Таким образом, вы должны владеть настраиваемым доменом и добавить настраиваемый домен в службу приложения, см. Сопоставление существующего настраиваемого DNSимя службы приложений Azure . Вы могли бы следовать этому процессу: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...