Как я могу разместить сервер только для web.config? - PullRequest
0 голосов
/ 25 июня 2018

Контекст

См. Этот вопрос: Включить CORS в пространстве имен служебной шины Azure

Действительно, я хочу иметь приложение ReactJS только для внешнего интерфейса, которое взаимодействует с API-интерфейсом Azure и выводит фрагменты результата на экран. Затем получает данные от пользователей и отправляет их обратно в API Azure. Промыть и повторить. К сожалению, CORS в значительной степени исключает это, и вы не можете [1] переопределить правила CORS для пространства имен ServiceBus.

Таким образом, предлагаемое решение представляет собой тонкий прокси-сервер, использующий API Azure для обхода CORS.

(альтернативные решения этого вопроса НАСТОЯТЕЛЬНО приветствуются!)

[1] прочитано: В настоящее время я не вижу ни одного пути, ни моего поиска в Google.

Вопрос

Пользователь по этому другому вопросу предлагает соответствующий файл web.config, так что теперь я хочу создать этот прокси-сервер. Я действительно не хочу, чтобы этот сервер делал что-либо иначе , я хочу, чтобы он был максимально прозрачным.

Как проще всего настроить этот сервер?


Я надеюсь, что смогу сделать что-то вроде: «Скажите Azure, что мне нужен веб-сервер, и вставьте / загрузите этот текст web.config на портал Azure»?

Если это уместно, в настоящее время мой стек имеет буквально ничего кроме npm и стека шаблона JS Create-React-App. Я предполагаю, что мы также разместим этот сайт в Azure.

1 Ответ

0 голосов
/ 04 октября 2018

Я получил это на работу, и это было довольно безболезненно - Azure может JustDoThis.

Документирование заметок, которые я написал для себя здесь, для любых будущих потерянных странников:)


Как отмечено в связанном вопросе, сервер Azure не (и не может) включать CORS, поэтому нам нужно каким-то образом обойти это.Подход заключается в создании сервера ReverseProxy, который принимает запрос, перенаправляет его в Azure, получает ответ, добавляет соответствующие заголовки CORS и возвращает его вызывающей стороне.

Выполнены следующие действия, кроме пропуска «Основные».Шаг «Аутентификация» (шаги № 3 и № 4) из этого блога Microsoft: https://blogs.msdn.microsoft.com/mihansen/2018/04/18/reverse-proxy-with-basic-authentication-in-azure-web-app/

  • Шаг 1. Создание нового веб-приложения Azure
  • Шаг 2. Добавление applicationHost.Файл xdt (в \Home\site)
  • Шаг 2a: Установите содержимое файла .xdt, используя предоставленный шаблон (я думаю, что это буквально web.config файл?
<?xml version="1.0"?>  
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">  
<system.webServer>  
    <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />  
    </system.webServer>  
</configuration>
  • Пропустить шаги 3 и 4 (относятся к аутентификации, которая не требуется, если это просто перенаправление.)
  • Шаг 5. Обновление / изменение / создание правил перезаписи

Шаг 2 достигается через KUDU, который доступен здесь:

https://yourazuresitedomain.scm.azurewebsites.net/

Некоторые ссылки о том, что такое KUDU и как его использовать:

...