2017-04-12 107 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代碼示例想通了。