假設你已經用nodejs開發了一個前端網站,Vue.js框架Whatever,本文教你如何部署到服務端。
第一步:編譯項目
一般的nodejs項目結構如下:
先用npm編譯nodejs項目,進入nodejs項目文件夾運行命令:
npm run build
會生成dist文件夾,這就是我們打包后所需要的項目文件,放到服務器上。
但此文件是不能雙擊打開的,需要部署到一個web服務器中,如iis,nginx等,下面介紹以nginx的部署方式。
第二步:安裝nginx
以Windows服務器為例,下載Nginx:http://nginx.org/en/download.html
解壓之后只需要修改config/nginx.conf,修改如下圖:
啟動nginx。命令窗口cd進入nginx安裝目錄,輸入start nginx啟動nginx。
現在通過瀏覽器訪問http://127.0.0.1:8088/訪問。你在nginx里配的什么端口就是什么端口。
但是這個窗口不能關閉,一旦關閉網站就無法訪問了。
這樣就完了嗎,肯定不行,每個程序員都應該有潔癖,就看不得服務器上有個黑色窗口在那里杵着。萬一關了呢網站不就掛了。
第三步:將Nginx部署成服務
window系統的服務是沒有界面的,而且支持開機自啟動,安全穩定。
nginx官方沒有發布win服務版,可能就沒想過讓你在window中用,呵呵。
這里需要用到一個小工具Windows Service Wrapper(winsw.exe),其實自己也可以寫一個就是包裝nginx.exe程序,啟動的時候設置為后台運行即可。
下載地址:https://github.com/winsw/winsw
下載完成之后將其放到nginx的安裝目錄,並改名為nginx-service.exe
創建配置文件nginx-service.xml(名字要和工具的名字一樣)
nginx-service.xml內容如下:
<?xml version="1.0" encoding="utf-8" ?> <service> <id>nginx-rtmp-win32-master</id> <name>Nginx Service</name> <description>High Performance Nginx Service</description> <logpath>C:\Users\asus\Desktop\nginx-rtmp-win32-master\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> <executable>C:\Users\asus\Desktop\nginx-rtmp-win32-master\nginx.exe</executable> <startarguments>-p C:\Users\asus\Desktop\nginx-rtmp-win32-master</startarguments> <stopexecutable>C:\Users\asus\Desktop\nginx-rtmp-win32-master\nginx.exe</stopexecutable> <stoparguments>-p C:\Users\asus\Desktop\nginx-rtmp-win32-master -s stop</stoparguments> </service>
注意把其中的地址都改成你的nginx.exe解壓地址。
接下來以管理員管理員管理員(重要的事情說三遍)的身份打開cmd,切換到nginx安裝目錄下
執行命令:nginx-service.exe install
恭喜你,服務已經安裝成功了,打開服務管理器,設置為自動方式,並啟動服務即可。
至此,沒用nginx窗口,你的網站依然可以打開,而且是開機自動啟動的。