安裝Nodejs
1待笑、到官網(wǎng)下載最新穩(wěn)定版nodejs
根據(jù)自己機(jī)器系統(tǒng)環(huán)境下載對應(yīng)的版本乳幸,我使用的64位的CentOS系統(tǒng),因此我下載了node-v8.10.0-linux-x64.tar.xz這個包瞻坝。
如果你想下載其他版本蛛壳,訪問這里:https://nodejs.org/dist/。
2所刀、解壓
解壓下載的壓縮包:node-v8.10.0-linux-x64.tar.xz衙荐,需要先使用xz命令,再解壓tar包浮创。解壓完成后忧吟,我們將nodejs移動到安裝目錄下,由于該版本已經(jīng)編譯好斩披,因此無需再編譯即可使用溜族。
xz -d node-v8.10.0-linux-x64.tar.xz
tar -xvf node-v8.10.0-linux-x64.tar
mv node-v8.10.0-linux-x64 /usr/local/nodejs
如果xz沒安裝讹俊,是centos服務(wù)器則直接執(zhí)行命令
yum install xz
就可以,其他類型請網(wǎng)上查詢
3煌抒、設(shè)置環(huán)境變量
我們需要設(shè)置環(huán)境變量以便可以直接使用node命令仍劈。使用命令vim /etc/profile打開文件,在文件末尾加上以下兩行寡壮,并保存贩疙。
export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH
保存好后,執(zhí)行以下命令讓配置立即生效:
source /etc/profile
4况既、驗證
依次輸入node -v和npm -v命令:
v8.10.0
[root@localhost ~]# npm -v
5.6.0
可以看到node的版本是v8.10.0这溅,而且自帶安裝好了npm,版本是5.6.0棒仍。
5悲靴、安裝cnpm鏡像
由于眾所周知的原因,npm命令安裝依賴時會非常慢莫其,因此我們使用淘寶鏡像加速安裝依賴对竣,安裝好后,就可以使用cnpm命令來安裝常用的依賴榜配。
npm install -g cnpm --registry=https://registry.npm.taobao.org
什么是PM2
PM2是node進(jìn)程管理工具,可以利用它來簡化很多node應(yīng)用管理的繁瑣任務(wù)吕晌,如性能監(jiān)控蛋褥、自動重啟、負(fù)載均衡等睛驳,而且使用非常簡單烙心。
安裝PM2
使用cnpm命令安裝全局的pm2。
使用cnpm命令安裝全局的pm2乏沸。
cnpm install -g pm2
PM2基本命令
pm2 list 查看所有被PM2管理的進(jìn)程列表
pm2 start xxx 啟動一個應(yīng)用
pm2 stop xxx 停止一個應(yīng)用
pm2 restart xxx 重啟一個應(yīng)用
pm2 describe xxx 查看應(yīng)用詳情
pm2 startup, pm2 save 兩條命令淫茵,用來保證服務(wù)器啟動時,pm2管理的程序自動運(yùn)行
Java程序處理
在jar的同級目錄新建應(yīng)用啟動配置文件,如pm2.json蹬跃,內(nèi)容如下:
{
"name": "my-server",
"script": "/usr/java/jdk1.8.0_201/bin/java",
"args": [
"-jar",
"server.jar"
],
"exec_interpreter": "",
"exec_mode": "fork"
}
說明如下:
name 進(jìn)程名稱(顯示在pm2 list命令中)
script 執(zhí)行進(jìn)程名稱匙瘪,如果需要執(zhí)行PHP腳本則填寫php解釋器的路徑,本文為java
args 傳給執(zhí)行進(jìn)程的參數(shù)蝶缀,多個參數(shù)以數(shù)組單元分割
exec_interpreter NodeJs解析器丹喻,本文不適用
exec_mode 執(zhí)行模式[cluster|fork]這個針對NodeJs應(yīng)用的配置,非NodeJs應(yīng)用統(tǒng)一fork
配置文件完成后翁都,使用
1
pm2 start pm2.json
即可看到應(yīng)用被啟動
我們還可以使用命令pm2 list
查看當(dāng)前node服務(wù)進(jìn)程碍论。
查看進(jìn)程日志
pm2 log 0
查看進(jìn)程詳情
pm2 describe <id|app_name>
進(jìn)程監(jiān)控
pm2 monit
接下來我們要做的是把pm2加入到開機(jī)啟動中去,以便于pm2會隨著服務(wù)器開機(jī)自啟動柄慰,運(yùn)行以下命令:
pm2 startup
pm2 save
我們還可以使用pm2 show hello
查看名稱為“hello”的node進(jìn)程詳情鳍悠。
更多有關(guān)PM2的使用說明請參考PM2項目github上的地址:https://github.com/Unitech/pm2税娜。
幾點(diǎn)經(jīng)驗:
通過 json 啟動之后, 就可以直接使用 json 文件中的名稱來對項目進(jìn)行控制, 如 pm2 stop name;
每次重新打包之后, 使用 pm2 restart name 就可以更新項目;
如果修改了 json 文件, 就無法通過 restart 更新項目了, 必須要先 pm2 del name 然后再重新 pm2 start xx.json.
{
"name": "fz",
"script": "/usr/bin/java",
"args": [
"-jar",
"/home/imzhizi/tcm-fz/target/fz.jar",
"--spring.profiles.active=prod"
],
"exec_interpreter": "",
"exec_mode": "fork",
"error_file" : "/home/imzhizi/log/fz-err.log",
"out_file" : "/home/imzhizi/log/fz-out.log"
}