您好,登錄后才能下訂單哦!
如何在Linux服務(wù)器中部署Nodejs項(xiàng)目?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
Linux是一種免費(fèi)使用和自由傳播的類(lèi)UNIX操作系統(tǒng),是一個(gè)基于POSIX的多用戶(hù)、多任務(wù)、支持多線(xiàn)程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。
登錄服務(wù)器
采用 GitBash
或者 Xshell
或者 CMD
等終端登錄連接到服務(wù)器
ssh 用戶(hù)名@ip地址
假如第一次使用服務(wù)器先更新下,以下程序基本采用 Yum
源的安裝方式:
yum update -y
// 1 安裝 yum install package // 安裝指定的安裝包package // 2 更新和升級(jí) yum update // 全部更新 yum update package // 更新指定程序包package yum check-update // 檢查可更新的程序 yum upgrade package // 升級(jí)指定程序包package // 3 查找和顯示 yum info // 列出所有可以安裝或更新的包的信息 yum info package //顯示安裝包信息package yum list // 顯示所有已經(jīng)安裝和可以安裝的程序包 yum list package // 顯示指定程序包安裝情況package yum search package // 搜索匹配特定字符的package的詳細(xì)信息 // 4 刪除程序 yum remove | erase package // 刪除程序包package yum deplist package // 查看程序package依賴(lài)情況 // 5 清除緩存 yum clean packages // 清除緩存目錄下的軟件包 yum clean headers // 清除緩存目錄下的 headers yum clean oldheaders // 清除緩存目錄下舊的 headers yum clean, yum clean all // (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers
服務(wù)器下安裝 git
;開(kāi)發(fā)源碼上傳服務(wù)器的方式可以使用 傳統(tǒng)的 scp
或者 ftp
方式,但這里使用 Git
流來(lái)管理,在服務(wù)器端執(zhí)行 git
操作;
rpm -qa|grep git 或者 git --version 或者 yum info git
若已經(jīng)安裝,需要先卸載。卸載命令如下:rpm -e --nodeps git 或者 rpm -e git
yum install git
輸入y,并回車(chē)
再使用 rpm -qa|grep git
來(lái) 或者 git version
查看是否已經(jīng)安裝好了Git。
服務(wù)器下安裝,選擇以下任意一種方法部署Node.js環(huán)境;
該部署過(guò)程使用的安裝包是已編譯好的二進(jìn)制文件。解壓之后,在bin文件夾中就已存在node
和npm
,無(wú)需重復(fù)編譯。
完成以下操作,使用二進(jìn)制文件部署Node.js環(huán)境:
下載Node.js安裝包
wget nodejs.org/dist/v6.9.5…
解壓文件
tar xvf node-v6.9.5-linux-x64.tar.xz
創(chuàng)建軟鏈接,您就可以在任意目錄下直接使用node
和npm
命令
ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm
查看 node
、npm
版本
node -v npm -v
至此,Node.js環(huán)境已安裝完畢。軟件默認(rèn)安裝在/root/node-v6.9.5-linux-x64/
目錄下
如果需要將該軟件安裝到其他目錄(例如:/opt/node/
)下,請(qǐng)進(jìn)行如下操作:
mkdir -p /opt/node/ mv /root/node-v6.9.5-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
NVM(Node Version Manager)是Node.js的版本管理軟件,使您可以輕松在Node.js各個(gè)版本間進(jìn)行切換。適用于長(zhǎng)期做node開(kāi)發(fā)的人員或有快速更新node版本、快速切換node版本的場(chǎng)景
完成以下操作,使用NVM安裝多個(gè) Node.js 版本:
使用git將源碼克隆到本地的~/.nvm
目錄下,并檢查最新版本
yum install git
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
激活NVM
echo ". ~/.nvm/nvm.sh" >> /etc/profile source /etc/profile
列出Node.js的所有版本
nvm list-remote
安裝多個(gè)Node.js版本
nvm install v14.0.0 -g nvm install v14.10.0 -g
運(yùn)行nvm ls
查看已安裝的 Node.js 版本,當(dāng)前使用的版本為v7.4.0。返回結(jié)果如下所示
[root@iZXXXXZ .nvm]# nvm ls v6.9.5 -> v7.4.0 system stable -> 7.4 (-> v7.4.0) (default) unstable -> 6.9 (-> v6.9.5) (default)
運(yùn)行nvm use v7.4.0
切換Node.js版本至v7.4.0
。返回結(jié)果如下所示。
[root@iZXXXXZ .nvm]# nvm use v7.4.0 Now using node v7.4.0
服務(wù)器下安裝;
sudo yum install -y nginx // 檢測(cè)是否安裝成功,驗(yàn)證 Nginx 配置是否正確; nginx -t 啟動(dòng)命令 service nginx start 停止命令 service nginx stop 重啟命令 service nginx restart # config: /etc/nginx/nginx.conf 安裝目錄 # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid 日志文件在var/log/nginx
工程項(xiàng)目?jī)?nèi)安裝,cd 至項(xiàng)目?jī)?nèi);
npm i pm2 -g
啟動(dòng)項(xiàng)目
pm2 start app // 實(shí)際執(zhí)行文件在app 工程下的 index.js
pm2 常用命令:
// 安裝 sudo npm i pm2 -g --watch:監(jiān)聽(tīng)文件變化 // 2表示啟動(dòng)多少實(shí)例 pm2 start app.js --watch i 2 // 根據(jù)機(jī)器cpu核心數(shù)最大限度利用資源 pm2 start app -i max // 查看運(yùn)行的進(jìn)程 pm2 ls // 關(guān)閉 pm2 stop app pm2 stop all // 重啟 pm2 restart app
我們也可以在項(xiàng)目中建一個(gè) process.yml
配置文件
apps: - script : app.js intance : 2 watch : true env : NODE_ENV : production
然后執(zhí)行
pm2 start process.yml
工程項(xiàng)目?jī)?nèi)安裝;使用 Yum 源安裝;
vi /etc/yum.repos.d/mongodb-org-4.4.repo 添加以下信息:
[mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc name # 名稱(chēng) baseurl # 獲得下載的路徑 gpkcheck=1 # 表示對(duì)從這個(gè)源下載的rpm包進(jìn)行校驗(yàn); enable=1 # 表示啟用這個(gè)源。 gpgkey # gpg驗(yàn)證
最新 MongoDB
配置地址:
docs.mongodb.com/manual/tuto…
保存退出: :wq 退出不保存 :wq!
sudo yum install -y mongodb-org
rpm -qa |grep mongodb rpm -ql mongodb-org-server
運(yùn)行結(jié)果分別如下圖:
// 開(kāi)啟MongoDB sudo service mongod start 或者 systemctl start mongod.service sudo chkconfig mongod on # 加入開(kāi)機(jī)啟動(dòng) sudo service mongod restart # 重啟MongoDB // 關(guān)閉MongoDB sudo service mongod stop # 關(guān)閉防火墻 // 卸載MongoDB sudo yum erase $(rpm -qa | grep mongodb-org) # 卸載MongoDB sudo rm -r /var/log/mongodb # 刪除日志文件 sudo rm -r /var/lib/mongo # 刪除數(shù)據(jù)文件
vi /etc/mongod.conf // 編輯以下內(nèi)容 // network interfaces net: port: 27017 bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
sudo service mongod restart 復(fù)制代碼
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
// 啟動(dòng) MongoDB 服務(wù),后面是服務(wù)器公網(wǎng) ip 地址 + 默認(rèn)端口 27017 mongo 10.128.218.14:27017
// admin數(shù)據(jù)庫(kù)(管理使用) > use admin switched to db admin > db.createUser({ user:"root", pwd:"123456", roles:["root"] }) Successfully added user: { "user" : "root", "roles" : [ "root" ] } // 其他數(shù)據(jù)庫(kù) test (用作開(kāi)發(fā)使用) > use test switched to db test > db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] }) Successfully added user: { "user" : "root", "roles" : [ "root" ] }
vi /etc/mongod.conf security: authorization: "enabled" # disable or enabled
sudo service mongod restart
> use admin switched to db admin > db.auth("root", "123456") 1 // 授權(quán)成功 // 其他常用命令 db.updateUser(user, writeConcern) # 更新用戶(hù) db.dropUser('test') # 刪除用戶(hù)
// 終端連接 mongo 10.128.218.14:27017/database -u username -p password // mongoose方式連接(項(xiàng)目?jī)?nèi)的方式) mongoose.connect('mongodb://admin:123456@10.128.218.14:27017/test?options...', {useNewUrlParser: true}); # 用戶(hù)名:密碼@域名或者服務(wù)器公網(wǎng)IP:端口/數(shù)據(jù)庫(kù)名稱(chēng)?配置項(xiàng)
1.0 管理員身份打開(kāi) cmd ;
2.0 進(jìn)入本地 MongoDB 安裝目錄 cd C:\Program Files\MongoDB\Server\4.4
3.0 執(zhí)行 net start mongodb
1、端口被占用了:檢查端口占用命令. 根據(jù)報(bào)錯(cuò)提示, 我這里檢查的是 4000
端口:
lsof -i:4000
2、殺掉當(dāng)前進(jìn)程
kill 2805
在執(zhí)行
npm run dev
可以了?。?! 查看服務(wù)器個(gè)程序占用內(nèi)存大小
du -h --max-depth=1
自己編寫(xiě)服務(wù)運(yùn)行腳本,直接在服務(wù)器上運(yùn)行,下面是運(yùn)行指令,腳本內(nèi)容這里就不展示了,可以自己補(bǔ)充 xshell
腳本相關(guān)知識(shí)。
sh run.sh // 啟動(dòng)服務(wù)腳本; sh stop.sh // 啟動(dòng)服務(wù)腳本; netstat -nltp // 當(dāng)前服務(wù)器端口狀態(tài);
看完上述內(nèi)容,你們掌握如何在Linux服務(wù)器中部署Nodejs項(xiàng)目的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。