How to deploy express-gateway on azure using app service

情到浓时终转凉″ 提交于 2021-01-29 10:40:47

问题


Created express-gateway application and now I am trying to deploy on azure and for that created Azure App Service, once app service created than use of Github deployment process, deployed code on app service and now when I trying to access app service on browser than I am getting 500.1001 error and on log message is like that iisnode was unable to establish named pipe connection to the node.exe process

Web.config

<?xml version="1.0" encoding="utf-8"?>
  <!--
For more information on how to configure your Node.js application, please visit
http://go.microsoft.com/fwlink/?LinkId=290972
-->
  <configuration>
  <appSettings>
  <!--
  <add key="StorageAccountName" value="" />
  <add key="StorageAccountKey" value="" />
  <add key="ServiceBusNamespace" value="" />
  <add key="ServiceBusIssuerName" value="" />
  <add key="ServiceBusIssuerSecretKey" value="" />
  -->
  </appSettings>
  <system.webServer>
  <!-- mimeMap enables IIS to serve particular file types as specified by fileExtension. -->
  <staticContent>
  <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
  </staticContent>

  <modules runAllManagedModulesForAllRequests="false" />

  <!-- Web.Debug.config adds attributes to this to enable remote debugging when publishing in Debug configuration. -->
  <iisnode watchedFiles="web.config;*.js;routes\*.js;views\*.pug"/>

  <!-- Remote debugging (Azure Website with git deploy): Comment out iisnode above, and uncomment iisnode below. -->
  <!--<iisnode watchedFiles="web.config;*.js;routes\*.js;views\*.pug"
loggingEnabled="true"
devErrorsEnabled="true"
nodeProcessCommandLine="node.exe &#45;&#45;debug"/>-->

  <!-- indicates that the server.js file is a Node.js application
to be handled by the iisnode module -->
  <handlers>
  <add name="iisnode" path="server.js" verb="*" modules="iisnode" />

  <!-- Remote debugging (Azure Website with git deploy): Uncomment NtvsDebugProxy handler below.
Additionally copy Microsoft.NodejsTools.WebRole to 'bin' from the Remote Debug Proxy folder.-->
  <!--<add name="NtvsDebugProxy" path="ntvs-debug-proxy/f45f6d32-816b-47f0-8bfa-47f7930108a4" verb="*" resourceType="Unspecified"
type="Microsoft.NodejsTools.Debugger.WebSocketProxy, Microsoft.NodejsTools.WebRole"/>-->
  </handlers>

  <security>
  <requestFiltering>
  <hiddenSegments>
  <remove segment="bin" />
  </hiddenSegments>
  </requestFiltering>
  </security>

  <rewrite>
  <rules>
  <clear />
  <!-- Remote debugging (Azure Website with git deploy): Uncomment the NtvsDebugProxy rule below. -->
  <!--<rule name="NtvsDebugProxy" enabled="true" stopProcessing="true">
  <match url="^ntvs-debug-proxy/.*"/>
  </rule>-->

  <!-- Don't interfere with requests for node-inspector debugging -->
        <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
          <match url="^server.js\/debug[\/]?" />
        </rule>

        <rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
          <match url="iisnode.+" negate="true" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
          <action type="Rewrite" url="server.js" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

  <!-- Remote debugging (Azure Website with git deploy): uncomment system.web below -->
  <!--<system.web>
    <httpRuntime targetFramework="4.5"/>
    <customErrors mode="Off"/>
  </system.web>-->
  </configuration>

Server.js

require('dotenv').config();
var request = require('request');

const path = require('path');
const gateway = require('express-gateway');

gateway()
  .load(path.join(__dirname, 'config'))
  .run();

gateway.config.yml

http:
  port: 8080
admin:
  port: 9876
  host: localhost
apiEndpoints:
  api:
    host: localhost
    paths: '/ip'
serviceEndpoints:
  httpbin:
    url: 'https://httpbin.org'
policies:
  - basic-auth
  - cors
  - expression
  - key-auth
  - log
  - oauth2
  - proxy
  - rate-limit
pipelines:
  default:
    apiEndpoints:
      - api
    policies:
    # Uncomment `key-auth:` when instructed to in the Getting Started guide.
    # - key-auth:
      - proxy:
          - action:
              serviceEndpoint: httpbin 
              changeOrigin: true

来源:https://stackoverflow.com/questions/65592124/how-to-deploy-express-gateway-on-azure-using-app-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!