如何在Azure WebApps上部署多个应用程序

时间:2016-11-24 08:48:33

标签: azure web-config azure-web-app-service

我有两个不同的应用程序,我想在同一个Azure WebApp上部署,如下所示:

webapp.azurewebsites.net/api/ <-- run the Java REST API here
webapp.azurewebsites.net/site/ <- put the Angular2 app here

问题

这两个应用程序都部署在服务器上,但目前我只能使用这样的web.config运行REST API:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Force HTTPS" enabled="true">
          <match url="(.*)" ignoreCase="false"/>
          <conditions>
            <add input="{HTTPS}" pattern="off"/>
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent"/>
        </rule>
      </rules>
    </rewrite>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%JAVA_HOME%\bin\java.exe"
                  arguments="-jar D:\home\site\wwwroot\webapps\rest-api.war">
    </httpPlatform>
  </system.webServer>
</configuration>

但是我无法访问服务器上的Angular2应用程序,我找不到文档如何同时配置Java应用程序和Angular2应用程序。

我还尝试使用Virtual applications and directories下的Azure信息中心中的Application settings设置实现此目的 - 但它无法正常工作,我找不到一个关于如何实现此目标的体面文档,或者如果设置Virtual applications and directories

,甚至可以做到这一点

我尝试移动Angular2站点,但无法配置服务器,以便在Java应用程序运行时可以访问Angular2应用程序。

问题

有人可以向我指出如何实现此目的的良好文档,或详细描述部署过程(关于配置,例如Azure仪表板中的Application settingsweb.config文件)?

2 个答案:

答案 0 :(得分:4)

根据我的经验,我认为在Azure WebApps上部署多个应用程序的最佳方法是为Azure Webapp设置Virtual applications and directories Application Settings,请参阅下图。

enter image description here

作为参考,请参阅SO线程Add virtual directory to existing website on Azure的答案。

  

Azure网站支持虚拟目录。有关可以通过Azure管理门户执行的操作,请参阅配置Azure网站。在Azure门户中,单击网站并转到配置,然后向下滚动到虚拟应用程序和目录(最后一个配置部分)。只需输入您的虚拟目录和相对于站点根目录的物理路径,然后单击“保存”。

答案 1 :(得分:1)

关于答案的第二部分,在调查主题时,我发现此博客文章是对仪表板中的应用程序设置如何与Web.config文件交互的最佳解释: https://azure.microsoft.com/en-us/blog/windows-azure-web-sites-how-application-strings-and-connection-strings-work/

特别是 -

  

如果您的web.config文件中已经存在应用程序设置,则Windows Azure网站将在运行时使用与您的网站关联的值自动覆盖它们。

因此,Azure门户中的“应用程序设置”选项卡将优先于您的web.config值。