簡體   English   中英

如何為Web應用程序運行Node.JS服務器?

[英]How to run Node.JS server for a web application?

信息:我對node.JS很新!

我編寫了一個可以偵聽端口XXXX上的http請求的示例服務器。 當我從命令行(Windows)運行此服務器時,它似乎運行良好。 它響應在瀏覽器中打開時對localhost:XXXX的請求。

問題:這是應該如何工作的嗎? 要使節點服務器運行,是否應始終打開CMD提示以使服務器偵聽請求? 我不能用IISNode“做點什么”嗎?

我理解,如果我向一個JS文件發出請求,這個文件在IISNode中被記為Node.JS文件並且NODE應該處理它; 然后我會讓Node處理我的請求。 但是,這假設IIS是我的Web服務器,並且Node可以處理特定請求。

我希望我在這里有意義! :)

在Windows上,您有兩個托管node.js應用程序的選項:

  1. 自行托管node.exe進程就像在* nix上一樣。 在開發過程中,您可能只是從命令行啟動它。 在生產中,您希望提供一種機制,該機制將圍繞node.exe提供進程生命周期管理(例如,在OS啟動時啟動它)。 在Windows上執行此操作的最合理方法是使用Windows服務(也稱為NT服務)。 可以幫助您執行此操作的組件是http://nssm.cc/
  2. 使用iisnode( http://github.com/tjanczuk/iisnode )使用IIS主機node.js。 與自托管相比,此方法具有https://github.com/tjanczuk/iisnode/wiki中列出的許多優點。 但是你也想探索性能影響(實際上並不是所有這些影響都很糟糕): http//tomasz.janczuk.org/2012/06/performance-of-hosting-nodejs.html

我用適當的方法解決了它。 是的,它是IISNode ..但是沒有任何評論似乎回答如何為同一個IIS(也提供PHP,ASPX等)托管的不同應用程序“運行”app.js

步驟1.編輯節點應用程序的入口點(通常)app.js以獲取新的URL結構。

Express應用程序假定它擁有整個URL空間並從根本身啟動URL,如下所示:

默認EXPRESS App.js

編輯app.js看起來如下(但是把你的應用程序的目錄名稱改為“aaspass”!!):


app.js根據IIS上托管的應用程序的目錄結構進行了修改


現在將web.config文件放在應用程序的根目錄下,如下所示(您可以使用此模板:webconfig)。

再次編輯文件並將名稱“aaspass”更改為應用程序的目錄名稱。


修改We.Config以添加規則以重定向到相關的app.js

而已! 您可以根據需要為多個應用程序執行此操作,並將它們托管在SAME服務器上。

什么對我有用:

  1. 安裝IISNode
  2. 安裝IIS的URL重寫模塊
  3. 在Node.js應用程序/文件夾中添加web.config文件。 以下是web.config文件的內容:

    在處理程序中,我只需要指向app.js(應用程序的典型入口點)。 我沒有改變我的任何路線(沒有必要附加任何文字)。

..

<configuration> 
        <appSettings>
            <add key="NODE_ENV" value="production" />
        </appSettings>
          <system.webServer>



    <handlers>
      <add name="iisnode" path="server/app.js" verb="*" modules="iisnode" />
    </handlers>

     <rewrite>
      <rules>
       <clear />
        <rule name="cdw">
          <match url="/*" />
          <action type="Rewrite" url="server/app.js" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>

如果你在Windows上,你可以(也可能應該)在IIS下運行Node.js:

http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM