обратный прокси в Azure - PullRequest
       4

обратный прокси в Azure

1 голос
/ 10 октября 2019

Мне нужно создать обратный прокси-сервер для размещения веб-сайта, работающего на сервере Azure. Чтобы защитить сервер и URL-адреса из-за плохого дизайна. Это я не могу изменить. Я думал позвонить http://myhiddenserver.com/?id=11.11.11.111:9035 id - это IP-адрес и порт для некоторых специальных функций.

Проблема в том, что я не могу понять, как получить параметры запроса в запросе. Весь сайт запускается с одного и того же URL http://{id}/setup.html., он перезагружает главную страницу через javascript и остается на setup.html.

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "stunnelsetupdevice": {
            "matchCondition": {
                "route": "/{id}"
            },
            "backendUri": "http://{id}/setup.html"
        }
    }
}

- изменить Я попытался просто заставить прокси вызвать URL, который я пытаюсьстроить. Это тоже не работает. Единственный способ, которым это работает, - это поместить весь URL в backenduri.

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "stunnelsetupdevice": {
            "matchCondition": {
                "route": "/"
            },
            "backendUri": "http://{id}/setup.html",
            "requestOverrides": {
                "backend.request.querystring.id": "11.11.11.11:9087"
            }
        }
    }
}

1 Ответ

0 голосов
/ 10 октября 2019

Я думаю, что вы можете использовать {* restOfPath} вместе с {id} здесь. В соответствии со следующими документами MS: https://docs.microsoft.com/en-us/azure/azure-functions/functions-proxies#request-parameters

Параметры шаблона маршрута

Параметры, используемые в шаблоне маршрута, доступны для ссылки по имени. Имена параметров заключены в фигурные скобки ({}).

Например, если у прокси есть шаблон маршрута, например / pets / {petId}, внутренний URL-адрес может содержать значение {petId}, как в https: //.azurewebsites.net/api/pets/ {petId}. Если шаблон маршрута оканчивается подстановочным знаком, таким как / api / {* restOfPath }, значение { restOfPath } является строковым представлением оставшихся сегментов пути извходящий запрос.

Попробуйте, если что-то подобное работает для вас:

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "stunnelsetupdevice": {
            "matchCondition": {
                "route": "/{id}/{*restOfPath}"
            },
            "backendUri": "http://{id}/setup.html/{*restOfPath}"
        }
    }
}
...