我有两个不同的应用程序,我想在同一个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 settings
和web.config
文件)?
答案 0 :(得分:4)
根据我的经验,我认为在Azure WebApps上部署多个应用程序的最佳方法是为Azure Webapp设置Virtual applications and directories
Application Settings
,请参阅下图。
作为参考,请参阅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值。