作為一個前端,對寫好的項目怎么部署到服務器是一臉蒙圈的,但還是對這個很感興趣,決定嘗試一下,說干就干。
一、買域名和服務器
要部署項目肯定要買域名,這點是必不可少的,發現騰訊云上邊有免費的服務器可用(只免費7天),于是就到騰訊云買了域名,又在騰訊云領了免費的服務器,當然這期間會讓你實名認證。
在騰訊云選擇了CentOS服務器,接下來進行域名解析,然后對服務器進行設置(賬號密碼之類的)
二、部署Node.js環境
(一)登錄服務器,先更新一下(第一次使用服務器先更新下)
yum update -y
(二)安裝node 和 pm2
- wget命令下載Node.js安裝包。該安裝包是編譯好的文件,解壓之后,在bin文件夾中就已存在node和npm,無需重復編譯。
wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz
- 解壓文件。
tar xvf node-v8.9.3-linux-x64.tar.xz
- 創建軟鏈接,使node和npm命令全局有效。通過創建軟鏈接的方法,使得在任意目錄下都可以直接使用node和npm命令:
ln -s /root/node-v8.9.3-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v8.9.3-linux-x64/bin/npm /usr/local/bin/npm
- 查看node、npm版本。
node -v
npm -v
- 至此,Node.js環境已安裝完畢。軟件默認安裝在/root/node-v8.9.3-linux-x64/目錄下。如果需要將該軟件安裝到其他目錄(如:/opt/node/)下,請進行如下操作:
mkdir -p /opt/node/
mv /root/node-v8.9.3-linux-x64/* /opt/node/
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
ln -s /opt/node/bin/node /usr/local/bin/node
ln -s /opt/node/bin/npm /usr/local/bin/npm
- 安裝pm2
npm install pm2@latest -g
創建軟鏈接,使pm2命令全局有效
ln -s /root/node-v8.9.3-linux-x64/bin/pm2 /usr/local/bin/pm2
三、將項目用git部署到服務器上
- 首先進入到服務器根目錄,顯示根目錄文件夾內容,然后進入var目錄下邊,在var目錄下邊新建一個www的文件夾,顯示var文件夾下邊內容,再進入www文件夾下邊,依次命令為
cd /
ls
cd var
ls
mkdir www
cd www
上個圖片
然后將你的倉庫里面的項目git clone 下來
首先要安裝git,使用下邊命令
yum install git
y
進入到你的項目中
上圖中可以看到有一個不是express項目的文件,它是pm2的配置文件pm2的配置方法為http://pm2.keymetrics.io/docs/usage/cluster-mode/
下邊是我項目里面的配置(新手,有問題大神可以指點下)
{
"apps": [
{
"name": "app1",
"script": "bin/www",
"log_date_format": "YYYY-MM-DD HH:mm:SS",
"log_file": "logs/app1.log",
"error_file": "logs/app1-err.log",
"out_file": "logs/app1-out.log",
"pid_file": "pids/app1.pid",
"instances": 1,
"min_uptime": "200s",
"max_restarts": 10,
"max_memory_restart": "1M",
"cron_restart": "1 0 * * *",
"watch": false,
"merge_logs": true,
"exec_interpreter": "node",
"exec_mode": "cluster_mode",
"autorestart": true,
"vizion": false
}
]
}
四、啟動項目
pm2 start processes.json
關閉項目
先查找ID
pm2 status
然后,停止相應項目的id
pm2 stop id
再啟動相應項目
先查找ID
pm2 status
然后,開啟相應項目的id
pm2 start id
設置pm2開機自動啟動
pm2 startup
pm2 save
之所以使用pm2啟動項目,是因為這樣退出服務器鏈接,node項目依舊可以運行。
這樣項目已經部署完成,但是項目中的端口只能是80端口。后臺大神告訴可以用nginx做代理服務器。并告訴了安裝方法。
五、安裝nginx 并配置nginx
- 安裝nginx
yum install nginx
- 配置nginx
進入配置的文件夾目錄,編輯nginx.conf 文件,也可以在conf.d文件夾下新建后綴名為.conf的文件
cd /
cd etc/nginx
vim nginx.conf
來張圖
這里用到了vim編輯器的使用方法,可在網上搜使用方法
簡單提幾個使用方法,直接按鍵盤
i 編輯
Esc 退出編輯
:q 退出vim編輯器
:wq 保存并退出vim編輯器
下邊是我的nginx配置(新手,有問題大神可以指點下)
- 啟動nginx
service nginx start
這樣nginx就運行了。
每次修改完nginx配置都要重新加載下配置文件,用下邊的命令
service nginx reload
設置nginx開機自動啟動
ln -s /bin/systemctl /usr/local/bin/systemcel
systemcel enable nginx
至此,node項目在服務器部署結束,直接訪問網址即可。再次感謝公司php大神的指導,感謝網上大家的技術分享。
【參考文章】
https://help.aliyun.com/document_detail/50775.html?spm=a2c4g.11186623.6.763.Fu3b9R
https://www.cnblogs.com/lxg0/p/7771229.html
http://www.lxweimin.com/p/d2a640b8661c
http://www.lxweimin.com/p/43525232b03b
https://cnodejs.org/topic/556f02a98ce3684b284b55ad