2013-08-27 18 views
3

我有一個解決方案,最終會看起來像這樣:使用SSL的多個Azure WebRoles - 如何設置解決方案?

http://www.test.com - 公益營銷網站(端口80)

https://www.test.com - MVC Web應用程序身份驗證的用戶(端口443)

https://api.test.com - 的WebAPI層(所有客戶端將使用)(希望端口443)

最初,應用程序將是一個MVC網站,但我們還計劃爲Windows Phone,Windows 8等開發本機客戶端。所有客戶端,包括MVC應用程序ation網站將使用WebAPI服務層進行數據操作。所有客戶也將利用便攜式類庫。

我註冊了兩個SSL證書。一個用於www.test.com,一個用於api.test.com。

當我配置角色(WebRole.Public,WebRole.Application和WebRole.WebAPI)時,我被告知端口443已經分配給另一個WebRole(這種情況下的應用程序WebRole),我需要使用下一個可用的端口是8443。

我擔心的是,如果我使用端口8443是不是防火牆友好,這意味着未來的客戶端(Windows手機,Win8的,等等),而無需打開了防火牆將無法正常工作。我真的很想在應用程序和webapi WebRoles上使用443。

如果我設置多個項目天青允許端口443要在WebRole.WebAPI使用,WebRole.Application纔有可能在本地調試?

什麼是推薦的解決方案配置?我們使用Visual Studio 2013年

回答

2

如果你想使用相同的端口對同一服務兩個網站,你需要有隻有一個作用,並與兩個站點設置它,併爲第二個站點主機頭(在你的情況下,我推薦api.test.com)。有完整的documentation on MSDN。所以你的服務定義應該是這樣的:

<WebRole name="Test" vmsize="Small"> 
    <Sites> 
     <Site name="Web"> 
     <Bindings> 
      <Binding name="Endpoint1" endpointName="HttpInput" /> 
      <Binding name="Endpoint1" endpointName="HttpsInput" /> 
     </Bindings> 
     </Site> 
     <Site name="Api" physicalDirectory="[Relative Path to Published API"> 
     <Bindings> 
      <Binding name="ApiEndpoint" endpointName="HttpsInput" hostHeader="api.test.com" /> 
     </Bindings> 
     </Site> 
    </Sites> 
    <Endpoints> 
     <InputEndpoint name="HttpInput" protocol="http" port="80" /> 
     <InputEndpoint name="HttpsInput" protocol="https" port="443" certificate="SSL" /> 
    </Endpoints> 
+0

這是否允許適當的縮放?我想單獨使用網絡角色,這樣我就可以獨立擴展它們。我們只是從設計開始,所以我們可以使用不同類型的SSL證書或更改域名(例如www.test.com/api)。我們希望遵循建議的最佳做法。我會檢查你提供的鏈接。 – Dan

+0

如果您想分別對其進行縮放,解決方案要簡單得多。你只需要在兩個不同的服務中使用你的兩個Web角色(VS中的雲項目)。這是因爲服務的HTTP端口一次只能綁定到一個角色。這確實意味着你不能只通過一次發佈來部署整個項目,你必須改用兩個。當然,您可以將API作爲現在的子站點運行,然後在需要擴展時將其分解爲自己的角色。這將同時爲您節省資金。 – knightpfhor

+0

我似乎可以在沒有調試的情況下啓動一個雲項目時進行調試,因此這可能對我們有用。就我們的SSL證書而言,你會推薦使用通配符證書並將它用於www和api網站?目前我有兩個單獨的證書(一個用於www和一個用於api)。 – Dan

0

你可以得到通配符SSL證書,它會工作的優良子域。您正試圖爲同一端口註冊兩個證書。這不是一個好的配置。

可以撥打MVC應用程序您的WebAPI服務,並舉辦,在不同的領域,如果你不想買通配符證書。要在本地調試應用程序,您可以使用開發人員快速證書(您自己批准)並定義要連接的端口。

+0

我實際上有兩個不同的證書,一個用於www.test.com,一個用於api.test.com。我可以加載兩個證書並將它們應用於不同的WebRoles。問題是指定443端口時,我不能指定443多個WebRole。你是說如果我使用通配符SSL證書,我將能夠配置兩個WebRoles在一個解決方案中使用端口443? – Dan

相關問題