【问题标题】:Deploying server-side NodeJS app on Windows-based Azure App Service (CI/CD Using Azure DevOps)在基于 Windows 的 Azure 应用服务上部署服务器端 NodeJS 应用(CI/CD 使用 Azure DevOps)
【发布时间】:2021-06-30 17:17:02
【问题描述】:

我们的用例包括以下几个方面:

  1. Ci/CD 使用 Azure Devops 以确保自动化和监控。
  2. 基于windows的Azure AppService
  3. 我们的 React 项目包括: 前端向服务器端脚本 (server.js) 请求要嵌入的 url。

server.js 执行一些身份验证和修改,并在特定时间段内返回一个“活动”网址。

使用 npm start 在本地站上运行并使用 node 启动服务器当然可以完美运行。

但是在部署到基于 windows 的 AppService 时,我看不到如何启动 server.js。

我的 CI 正在 npm 安装和压缩工件。 CD 正在部署工件并提供 index.js 网页。

但我似乎看不到如何启动 server.js 文件。

感觉我错过了一些关于 IIS 和 web.config 的重要部分

【问题讨论】:

    标签: node.js azure iis devops azure-devops-rest-api


    【解决方案1】:

    您可以尝试在 web.config 文件中添加以下代码:

    <?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>
    

    【讨论】:

    • 谢谢,但最终我将 server.js 文件部署在 linux 应用服务上,并将我的 react 工件部署在 Windows 应用服务上。
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 2020-09-06
    相关资源
    最近更新 更多