Как реализовать HTTP-ретранслятор / туннель для доступа к веб-приложению? - PullRequest
0 голосов
/ 14 января 2020

У нас есть веб-приложения (ASP. Net Core, размещенные на IIS), работающие на компьютерах клиентов (за NAT).

Сотовые телефоны или любые другие устройства, подключенные к Inte rnet должен получить доступ к веб-приложению.

Ограничения:

  • Нет публичного c IP-адреса.
  • Мы не хотим настраивать Dynami c DNS для клиентов, так как мы не предоставляем аппаратное и программное обеспечение для доступа к inte rnet.

Мы хотим, чтобы сервер ретрансляции http отправлял запросы клиентов соответствующим веб-приложениям и наоборот.

например,

  • www.example.org/c1 идет в веб-приложение на P C Клиента 1
  • www.example.org/c2 идет в веб-приложение на P C клиента 2

или даже лучше

  • c1.example.org / переходит в веб-приложение на P C клиента 1
  • c2.example.org / переходит в веб-приложение на P C клиента 2

То, что я до сих пор оценивал:

Microsoft Azure Hyb RED Connection:

  • Я все еще пытаюсь выполнить вход в веб-приложение - браузер не получает повар аутентификации ie, хотя другие файлы cookie работают нормально.
  • Ценник довольно высокий, и нам сложно выставлять счета клиентам, которые являются фермерами, и всегда призывают платить как можно меньше денег за что-либо.

RabbitMQ с ThinkTecture RelayServer (https://github.com/thinktecture/relayserver):

  • Я не смог заставить работать плагин RelayServer.
    • Вот трассировка ошибок, которую я получаю:
    \RelayServer>Thinktecture.Relay.Server.exe start
    [12:27:59 WRN] No SharedSecret or OAuthCertificate is configured. Please configure one of them. Continuing with a random value which will make all tokens invalid on restart.
    [12:27:59 DBG] Using settings file. settings-file-name=C:\Users\schema\AppData\Local\Thinktecure\RelayServer\settings_443.config.json
    [12:27:59 DBG] Loaded setting from file. origin-id=ecf0e337-c111-450a-b802-384df2fbce76
    [12:27:59 INF] Configuration Result:
    [Success] Name TTRelayServer
    [Success] DisplayName Thinktecture RelayServer
    [Success] Description Thinktecture RelayServer Process
    [Success] ServiceName TTRelayServer
    [12:27:59 INF] Topshelf v4.1.0.172, .NET Framework v4.0.30319.42000
    [12:27:59 DBG] Starting TTRelayServer
    [12:28:10 ERR] The service failed to start.
    System.ServiceProcess.TimeoutException: Der Vorgang wurde nicht abgeschlossen, da der Timeout abgelaufen ist.
       bei System.ServiceProcess.ServiceController.WaitForStatus(ServiceControllerStatus desiredStatus, TimeSpan timeout)
       bei Topshelf.Runtime.Windows.WindowsHostEnvironment.StartService(String serviceName, TimeSpan startTimeOut)
       bei Topshelf.Hosts.StartHost.Run()
  • RabbitMQ запущен, и я успешно играл пару учебные пособия.

Вопросы:

Предложения будут наиболее полезны для хороших и простых в настройке альтернатив, которые бесплатны или не слишком дороги.

Если у кого-то есть опыт работы с ThinkTekture RelayServer, вы также можете поделиться своими мыслями.

1 Ответ

0 голосов
/ 30 января 2020

Существует способ достичь этого, используя Премиум-функции вместе с VNET Интеграционной функцией .

Но для этого потребуется связь между VNET на Azure и вашей локальной сетью с чем-то вроде VPN типа «сеть-сеть» (S2S) или ExpressRoute , которые оба обходятся дорого особенно если его еще нет.

Если это приемлемо, Премиум-функции - действительно способ приблизиться к этому. Существует официальный учебник , который охватывает это. Для справки:

  1. Создание приложения с расширенными функциями
  2. Приложение с функцией подключения к виртуальной сети (в которой уже есть маршрут S2S или Express) setup)
  3. Создание прокси-функции для доступа к внутреннему веб-приложению
...