伺服器配置(三)

虛竹子發表於2019-04-15

目標:帶你安裝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 指令安裝最新版 nodenpm

sudo n latest

好了,這樣 Node 即安裝完成了,我們可以試著輸出 Node 版本號。

node -v

注意,用這種方法安裝的話,每次安裝全域性包時需要加上 sudo。我們來安裝 nrm 來試試吧,nrmnpm 的源管理工具,我們用 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 服務講解結束

相關文章