Tom*_*mmy 6 azure azure-web-sites
我试图在一个Azure WebApp中托管多个网站,而不是拥有多个托管网站的网络应用程序.这些站点中的每一个都相当小,但为了满足SLA与Azure的要求,我们需要让服务器针对我们的生产环境使用多个实例进行扩展,这是组合站点的原因.
在研究了这个主题后,我使用Azure帐户进行了以下设置.
此时,两个Web应用程序都正常运行,并且两个子域都指向我们的Azure实例.我们现在有以下设置:
我想要实现的目标:
但是,我无法弄清楚如何将子域映射到特定的虚拟目录.我曾尝试将站点URL更新为我希望应用程序响应的子域,但是,子域仍会显示我在WebApp部署的根目录中所拥有的内容.
我应该有一些位于站点根目录中的HttpHandler并将流量引导到正确的虚拟目录吗?我缺少门户网站中的设置吗?以前,我们使用Web角色和修改ServiceDefinition文件来完成此操作,但Azure Web Apps在发布,与源代码控制集成等方面的工具集似乎更进一步.
Tom*_*mmy 14
RuslanY发布的答案将有效(稍微修改一下规则)但是,在了解了更多Azure门户和Web App配置之后,不需要在单个Web App中托管多个站点(技术上多个Web应用程序都是共享您定义的资源计划,例如标准级别0(S0)的2个实例)*.
截至今天的Azure服务产品,以下是真实的.当您创建新的Web应用程序时,您可以实现应用程序所属的"应用程序服务计划".如果您有应用服务计划,可以说标准有2个实例,您部署到该应用服务计划的任何Web应用程序与同一服务计划中的其他Web应用程序共享这些资源,这意味着您无需支付额外费用来托管其他网络app 是否在同一App Service计划中.我假设每个Web应用程序都是它自己的一组资源(它可以是,但不一定是).鉴于此,为了实现我的需要,我只需为每个子域创建一个Web应用程序,并将它们全部放入相同的App Service计划中.我现在正在托管多个站点,不为每个站点支付2台服务器(我想避免的),而且我不必使用URL重写或HTTP处理程序.
我希望这篇文章可以帮助其他人更好地理解Azure Web Apps的结构.从我所知道的,目前的在线文档并没有明确说明这一点.
这可能与URL重写规则有关,该规则采用请求的主机名并重写请求URL,以从主机名中提取的子域开头:
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite Subdomain To Directory">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.mydomain\.com$" negate="true" />
<add input="{HTTP_HOST}" pattern="^(.+)\.mydomain.\com$" />
</conditions>
<action type="Rewrite" url="{C:1}/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
要了解重写规则的语法,可以参考有关URL重写模块的IIS.net文档。
| 归档时间: |
|
| 查看次数: |
3251 次 |
| 最近记录: |