目標:帶你安裝
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.outxu.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
服務講解結束