Ответ 1
Да, обратный прокси-сервер доступен на месте.
Чтобы заставить его работать для существующего кластера, его необходимо настроить и включить в XML-конфигурации кластера, а затем новый развертывание необходимо развернуть, как описано ниже.
Для нового кластера настройте его в конфигурации кластера JSON перед созданием кластера, как описано @Scott Weldon.
@Senj дал ключ (спасибо!), который привел меня к ответу. Недавно я обновил биты служебной ткани в своем блоке dev до 5.1.163.9590. Когда я посмотрел в C:\SfDevCluster\Data\FabricHostSettings.xml, я заметил следующее:
<Section Name="FabricNode">
...
<Parameter Name="NodeVersion" Value="5.1.163.9590:1.0:0" />
...
<Parameter Name="HttpApplicationGatewayListenAddress" Value="19081" />
<Parameter Name="HttpApplicationGatewayProtocol" Value="http" />
...
</Section>
Интересно! Когда кластер dev запущен, я просмотрел:
http://localhost:19081/MyApp/MyService/api/odata/v1/$metadata
и вуаля! Мой API возвратил ожидаемые данные. Поэтому @Senj был прав, что он связан с настройками HttpApplicationGateway. Я предполагаю, что в последней версии SDK она предварительно настроена и включена по умолчанию. (Что меня отбросило, все документы относятся к порту 19008, но фактический сконфигурированный порт был 19081!)
Чтобы заставить обратный прокси работать в "реальном" многокомпонентном (VM) кластере, я сделал следующее (Примечание: я не думаю, что обновление кластеров было необходимо, но поскольку у меня не было ничего в мой хранилище изображений для обновления кластера, а для процесса обновления кластера требуется пакет кода, я использовал последнюю версию):
- Скопируйте существующий манифест кластера (со вкладки Манифест в Проводнике Fabric), вставьте в новый XML файл, наберите номер версии и измените следующим образом:
В разделе Конечные точки NodeType добавьте:
<NodeTypes>
<NodeType Name="NodeType0">
<Endpoints>
<HttpApplicationGatewayEndpoint Port="19081" Protocol="http" />
...
</Endpoints>
</NodeType>
</NodeTypes>
и в разделе <FabricSettings>
добавьте следующий раздел:
<Section Name="ApplicationGateway/Http">
<Parameter Name="IsEnabled" Value="true" />
</Section>
-
Использование служебных команд PowerShell:
- Скопируйте новую конфигурацию кластера (ранее скопированный файл manifest.xml) в хранилище изображений ткани.
- Зарегистрируйте конфигурацию нового кластера
- Скопировать рабочую оболочку службы Runtime кластеров codepackage (доступно здесь - см. примечания к выпуску для ссылки на MSI) в хранилище изображений.
- Зарегистрировать кластеров codepackage
- Начало и завершение обновления кластера (я использовал неконтролируемый ручный режим, который делает одну виртуальную машину одновременно, и требует команды ручного возобновления после завершения каждого node)
После завершения обновления кластера я смог запросить мой API-интерфейс, используя синтаксис URL-адреса обратной прокси-сервера и имени приложения/серьевого имени:
http://fqdn:19081/MyApp/MyService/api/odata/v1/$metadata