2017-04-12 70 views
1



我面临着获得反向代理权限的问题。当我使用反向代理服务器时,我不断收到“504 Getaway Timeout”。 我按照microsoft's example来设置群集。 恕我直言,我认为集群设置是正确的,唯一的区别是我已经为代理指定了端口80,并且我没有将SSL用于测试环境。服务结构反向代理


我现在正在测试环境,但生产环境运行相同的服务,只是没有反向代理,它就好了。另外,我在测试环境中暴露了一个服务的端点,试图将它称为不带反向代理,并且它工作正常。

我读过它could be caused by the containers,但我使用的是Windows 2012 RC2 DataCenter。据我所知,它不使用windows nat容器。另外,我读过它可能是由于404错误(示例文档中的#case 2)导致的,它尝试重新加载它,并简单地超时尝试。

这些都是一些总结的细节,可能是重要的是知道

  • 服务织物版本:5.5.219.0
  • 操作系统:Windows
  • SKU:2012-R2数据中心的
  • 服务使用WebListener
  • 允许所有端口
  • 1 NodeType(无状态)
  • 使用ASP.NET的核心Web API模板
  • VS 2015年企业

服务端点配置等作成的

  • 服务如下: 端点协议= “HTTP” NAME = “ServiceEndpoint” TYPE = “输入”

    所有服务和群集都很健康。

    任何帮助,将不胜感激!

  • 回答

    1

    我发现这个超时的原因。这只是我没有得到所需的更改请求url权利。

    我所有的服务都在持有以服务名称命名的MVC控制器。所以每当我在没有反向代理称他们为我的请求的URL会是这样的http://mycluster.westeurope.cloudapp.azure.com:8280/Notifications/TestMethod

    ,这将是足够的,因为它可以找到独特的端口控制器。 我一直在试图用反向代理来调用它的方式是 http://mycluster.westeurope.cloudapp.azure.com/SomeName.API.Services/Notifications/TestMethod

    这是不够的“通知”被解析为服务的名称,而不是控制。所以我在不指定控制器的情况下调用服务和一个动作。

    调用它的正确方法是包含两次服务名称,因为我已经将我的控制器称为服务(我可能会改变它)。 这是一个正确的URL我不得不使用 http://mycluster.westeurope.cloudapp.azure.com/SomeName.API.Services/Notifications/Notifications/TestMethod

    我已经通过查找reverse proxy代码示例想通了。