目錄node
以前本身搞了個域名,而後發現域名默認映射到80端口,騰訊雲又沒有修改映射端口的功能。而後服務器又是和幾個sx一塊兒租的,因而只能想辦法把發到80端口的請求分配到相應的項目裏。當時有兩個想法:本身寫個中間件和用IIS,最後仍是選了IIS,折騰好以後就沒再管。結果最近升級了服務器,從新部署項目的時候發現基本上都忘光了。。因而就簡單記錄一下步驟。git
IIS什麼的就很少說了,直接說主要用的東西,iisnode。下載地址。github
另外還須要安裝URL Rewrite。
安裝iisnode以後,能夠用%programfiles%\iisnode\setupsamples.bat
來安裝一個例子,而後訪問http://localhost/node
。
安裝完以後,新建一個站點,監聽80端口,配置好本身的域名。web
web.config配置能夠參考github中samples中的configuration.服務器
<configuration> <system.webServer> <handlers> <add name="iisnode" path="launch.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Script" /> </handlers> <rewrite> <rules> <rule name="all"> <match url="/*" /> <action type="Rewrite" url="launch.js" /> </rule> </rules> </rewrite> <iisnode nodeProcessCommandLine=""C:\Program Files\nodejs\node.exe"" interceptor=""C:\Program Files\iisnode\interceptor.js"" promoteServerVars="REMOTE_ADDR"/> </system.webServer> </configuration>
由於bin
會在url重寫時被IIS屏蔽,所以不能直接把url重寫到bin/www
上,所以須要增長一箇中間文件,或者修改bin
目錄的名字(固然是不推薦的)。
launch.js很簡單,只須要require一下bin/www
.app
require('./bin/www');
接下來重啓站點就能夠了。ide
若是運行的時候出現以下錯誤:ui
500.19
配置錯誤 不能在此路徑中使用此配置節。若是在父級別上鎖定了該節,便會出現這種狀況。鎖定是默認設置的(overrideModeDefault="Deny"),或者是經過包含 overrideMode="Deny" 或舊有的 allowOverride="false" 的位置標記明確設置的。url
這時候只要運行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
其中的handlers是報錯的節點名字。.net
嘛,我是到這裏就沒有問題能夠正常運行了。歡迎訪問,雖然沒有什麼東西。