How to serve NodeJS application from Windows Server Edition OS without using iisnode?

杀马特。学长 韩版系。学妹 提交于 2020-07-13 15:44:52

问题


So, I've written a NodeJS application on Windows having Server Edition OS, My application basically communicates with other Softwares installed in the same system by executing some commands using NodeJS child process.

Everything is working fine on localhost, as my server has a static IP, I want to serve the application to public. How can I do this without using iisnode?

I tried using iisnode, but I am falling into issues since then, I am able to server my site, but due to some permission issues on C drive, the cmd command gives Access Denied error.


回答1:


Option 1:

  1. Run your Node.js app at a local binding such as http://localhost:8080 Reference
  2. Set up IIS as reverse proxy Reference

iisnode provides better control on application pool integration and so on, but since it is a dead project you definitely shouldn't use it any more.

Option 2:

Use HttpPlatformHandler to launch your Node.js app,

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httppPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform stdoutLogEnabled="true" stdoutLogFile=".\node.log" startupTimeLimit="20" processPath="C:\Program Files\nodejs\node.exe" arguments=".\app.js">
            <environmentVariables>
                <environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" />
                <environmentVariable name="NODE_ENV" value="Production" />
            </environmentVariables>
        </httpPlatform>
  </system.webServer>
</configuration>

Reference



来源:https://stackoverflow.com/questions/62450658/how-to-serve-nodejs-application-from-windows-server-edition-os-without-using-iis

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