目標:帶你安裝
Node
以及處理Node
服務的埠反向代理。
前言
Node
越來越火了,所以給伺服器配置Node
也很有必要了,一般的Node
服務都是啟動在本地服務的某一埠,本例將以一個簡單的Express
服務帶你部署持久啟動Node
服務,並將其反向代理到相應域名上。
安裝Node
我們直接採用npm
的一個神奇的包——n,來安裝node
。
從 github 克隆n
的倉庫並安裝,注意最好在 /usr/local
目錄下操作。
cd /usr/local
sudo git clone https://github.com/tj/n.git n
cd n
sudo make install
複製程式碼
上面執行最後一步可能會提示沒有 make
,那就裝一個唄。
sudo apt-get install make
sudo make install
複製程式碼
用 n 指令安裝最新版 node
及 npm
。
sudo n latest
好了,這樣 Node 即安裝完成了,我們可以試著輸出 Node 版本號。
node -v
注意,用這種方法安裝的話,每次安裝全域性包時需要加上 sudo
。我們來安裝 nrm
來試試吧,nrm
是npm
的源管理工具,我們用 nrm
切換到npm
淘寶源。
sudo npm install nrm -g --registry https://registry.npm.taobao.org
nrm use taobao
複製程式碼
沒有問題的話應該是能夠輸出切換成功的資訊。
部署我們的 Express
服務(一個Node
後端框架)
我們就從零開始部署吧,通過應用生成器工具 express
可以快速建立一個應用的骨架。
sudo npm install express-generator -g
進入你想把 express
放置的目錄,我就放在了 /usr/share/nginx/html
,這個放置地方對 express
啟動的服務沒有影響,因為 node
啟動在本地服務的某一埠。
用express
生成器生成一個express
專案,並啟動它。
sudo express api
cd api && sudo npm install
DEBUG=api:* npm start
複製程式碼
服務已經啟動在 3000 埠,我們訪問試試,在瀏覽器地址輸入123.206.55.207:3000。如果沒問題你應該能看見如下頁面。
反向代理+持久部署
直接通過上面的方式啟動並不能持久化開啟服務,所以我們用 pm2 來託管我們的服務。首先通過 npm
安裝pm2
。
如果你沒停止剛剛開啟的 express
服務,按Ctrl+C
停止。
sudo npm install pm2 -g
通過 pm2 啟動服務。
pm2 start bin/www
好了,我們已經把服務持久部署了,接下來我們把服務對映到域名上去。
我以 api.ailpf.cn
作為該服務的請求地址,先去域名管理中新增解析記錄 api
。
然後進入 nginx
配置目錄,新增一個虛擬主機。
cd /etc/nginx/conf.d
sudo nano api.conf
複製程式碼
寫入以下內容:
server {
listen 80;
server_name api.youradmin.com;
location / {
proxy_pass http://0.0.0.0:3000/;
}
}
複製程式碼
重啟 nginx 服務:
sudo service nginx restart
我們訪問試試,在瀏覽器地址輸入api.youradmmin
。
至此,Node 安裝以及在伺服器上持久啟動 Node 服務講解結束