2013-08-27 20 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

相关问题