如何实现HTTP中继/隧道来访问Web应用程序?

问题描述 投票:0回答:1

我们有Web应用程序(由IIS托管的ASP.Net Core)在客户的计算机(位于NAT后面)上运行。

手机或连接到Internet的任何其他设备都应该可以访问Web应用程序。

限制:

  • 没有公共IP地址。
  • 我们不希望为客户配置动态DNS,因为我们没有提供用于互联网访问的硬件和软件。

我们希望像HTTP中继服务器之类的东西将客户端请求转发到相应的Web应用程序,反之亦然。

例如

  • www.example.org/c1转到客户1的PC上的Web应用程序
  • www.example.org/c2转到客户2的PC上的Web应用程序

甚至更好

  • c1.example.org/转到客户1的PC上的Web应用程序
  • c2.example.org/转到客户2的PC上的Web应用程序

我到目前为止的评价:

Microsoft Azure混合连接:

  • 我仍在努力在Web应用程序上执行登录-尽管其他cookie似乎工作正常,但浏览器没有获得身份验证cookie。
  • 价格很高,对我们来说,很难向作为农民的客户开帐单,并且总是敦促以最少的钱支付任何费用。

带有ThinkTecture RelayServer(https://github.com/thinktecture/relayserver)的RabbitMQ:

  • 我无法使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的经验,也欢迎您分享您的想法。

http https reverse-proxy azure-servicebusrelay http-tunneling
1个回答
0
投票

有一种方法可以使用Premium Functions及其VNET Integration feature来实现。

但是这将需要Azure上的VNET与您的本地网络之间的链接,并带有诸如Site-to-Site (S2S) VPNExpressRoute之类的东西,而这两者都需要付出一定的代价,特别是如果还没有的话。] >

如果这是可以接受的,那么高级功能确实是解决此问题的一种方法。有一个official tutorial涵盖了这一点。作为参考,运行此程序的步骤是

  1. 创建高级功能应用程序
  2. 连接功能应用程序到虚拟网络(已经具有S2S或Express Route设置)
  3. 创建Function Proxy以访问您的内部Web应用
© www.soinside.com 2019 - 2024. All rights reserved.