Я пытаюсь, чтобы несколько приложений Node.js работали параллельно в одном экземпляре службы приложений Azure.Я пытался создать виртуальное приложение для каждого приложения Node.js, но постоянно получаю сообщение об ошибке сервера (код 500).Я использую ZipDeploy или Azure DevOps для развертывания моих приложений.
Я подозреваю, что проблема может быть в том, что файлы web.config , связанные с моими приложениями, неверны.
Вотнекоторые подробности моей настройки:
В меню Настройки приложения моего экземпляра службы приложений я перешел к настройкам Виртуальные приложения и каталоги и поставил следующее:
/ site\wwwroot Application x
/mysite1 site\wwwroot\mysite1 Application x
/mysite2 site\wwwroot\mysite2 Application x
Моя wwwroot директория выглядит следующим образом.Чтобы убедиться, что проблема не в самом коде, я использовал одно и то же приложение Node.js для всех трех:
index.html
server.js
scripts
web.config (*)
----- mysite1
|----- index.html
|----- server.js
|----- scripts
|----- web.config (**)
----- mysite2
|----- index.html
|----- server.js
|----- scripts
|----- web.config (***)
Я использую файл web.config по умолчанию (, предоставленный Kudu) для трех из них:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<webSocket enabled="false" />
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server.js\/debug[\/]?" />
</rule>
<rule name="StaticContent">
<action type="Rewrite" url="public{REQUEST_URI}"/>
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="server.js"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="bin"/>
</hiddenSegments>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
Используя эту конфигурацию, я могу достичь https://myappservice.azurewebsites.net/ без проблем, но https://myappservice.azurewebsites.net/mysite1 возвращает толькоошибка сервера.
Я попытался удалить обработчики из файлов web.config в подкаталогах (** и ***), как указано в аналогичных вопросах, но безрезультатно.
Какая правильная конфигурация для этих трех файлов?Я предполагаю, что правила перезаписи должны быть скорректированы, но я не уверен, каково точное ожидаемое значение для каждого.