简体   繁体   中英

Deploying server-side NodeJS app on Windows-based Azure App Service (CI/CD Using Azure DevOps)

Our use case consists of the following aspects:

  1. Ci/CD Using Azure Devops in order to ensure automation and monitoring.
  2. Azure AppService based on windows
  3. Our React projects consists of: Frontend asking a server-side script (server.js) for a url to embed.

server.js performs some authentications and modifications and returns a single url "live" for a specific period of time.

Running on local station using npm start and starting the server using node of course works perfectly.

But when deploying to a windows-based AppService, I cant see how to start the server.js.

My CI is npm installing and ZIPing the artifact. CD is deploying the artifact and serving the index.js web page.

But I cant seem to see how to start the server.js file.

Feels like I am missing some important piece regarding IIS and web.config

you could try to add the below code in your web.config file:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM