摘要:安裝及線(xiàn)上環(huán)境配置安裝官方安裝說(shuō)明地址執(zhí)行命令至此,安裝完成版本查看安裝官方文檔地址首次安裝執(zhí)行命令以后創(chuàng)建項(xiàng)目只需在你需要的路徑下執(zhí)行開(kāi)發(fā)測(cè)試環(huán)境下直接執(zhí)行以下命令啟動(dòng)項(xiàng)目后面加上可以在修改現(xiàn)有文件后自動(dòng)進(jìn)行重啟瀏覽器輸入即可
centos+node.js+nest.js+caddy+pm2安裝及線(xiàn)上環(huán)境配置
node.js安裝官方安裝說(shuō)明地址 https://github.com/nodesource...
執(zhí)行命令
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
sudo yum install -y nodejs
至此,noded.js安裝完成
版本查看
node -v
npm -vnest.js安裝
官方文檔地址 https://github.com/nestcn/doc...
首次安裝執(zhí)行命令
npm i -g @nestjs/cli
以后創(chuàng)建項(xiàng)目只需在你需要的路徑下執(zhí)行
nest new project
開(kāi)發(fā)測(cè)試環(huán)境下直接執(zhí)行以下命令啟動(dòng)項(xiàng)目,start后面加上:dev可以在修改現(xiàn)有文件后自動(dòng)進(jìn)行重啟
npm run start:dev
瀏覽器輸入 localhost:3000 即可訪(fǎng)問(wèn),端口修改在src/manin.ts中
由于node.js環(huán)境下,每個(gè)項(xiàng)目啟動(dòng)都需要占用一個(gè)端口,所以要想實(shí)現(xiàn)多站點(diǎn),多域名綁定訪(fǎng)問(wèn)就需要使用nginx,caddy之類(lèi)的web service來(lái)做代理這里我們選用簡(jiǎn)單強(qiáng)大的caddy來(lái)實(shí)現(xiàn)
安裝caddy官方文檔地址 https://caddyserver.com/tutorial
在 https://caddyserver.com/download 頁(yè)面中根據(jù)自己服務(wù)器和所需插件勾選后會(huì)生成安裝命令
無(wú)需插件情況下,直接執(zhí)行下面的命令即可
curl https://getcaddy.com | bash -s personal
安裝完成后如果是靜態(tài)網(wǎng)站可以直接在網(wǎng)站根目錄執(zhí)行以下命令即可啟動(dòng)
caddy
瀏覽器輸入 localhost:2015 即可訪(fǎng)問(wèn)
下面主要針對(duì)nest.js項(xiàng)目多站點(diǎn)的情況進(jìn)行配置說(shuō)明
在你希望的路徑下創(chuàng)建 一個(gè) Caddyfile 文件
vi Caddyfile
配置內(nèi)容示例如下
比如你的域名是 www.google.com ,你需要通過(guò)該域名訪(fǎng)問(wèn)你的 localhost:6000 這個(gè)項(xiàng)目,同理,其它項(xiàng)目同樣配置
www.google.com { proxy / localhost:6000 } www.facebook.com { proxy / localhost:6001 }
注意:在上面的配置中切記 "{" 和 "/" 左右的空格,否則將會(huì)引起錯(cuò)誤
配置完以后按 esc 鍵再輸入 :wq 保存退出
然后執(zhí)行以下名來(lái)來(lái)告訴 caddy 你的配置文件在哪,并加載啟動(dòng)
caddy -conf /路徑/Caddyfile
這時(shí)可能會(huì)讓你輸入郵箱地址,這是caddy為了給你自動(dòng)申請(qǐng)配置SSL證書(shū),然后你會(huì)看到輸出了你配置的域名,
分別有http和https的地址,直接訪(fǎng)問(wèn)即可
以上配置完基本就完成了;但是放你重啟服務(wù)器后就會(huì)發(fā)現(xiàn)網(wǎng)站不能訪(fǎng)問(wèn)了,服務(wù)器上查看你會(huì)發(fā)現(xiàn)node.js的web server 和 caddy 都沒(méi)有自動(dòng)啟動(dòng),還需要手動(dòng)執(zhí)行上面步驟中的啟動(dòng)命令才行,這時(shí)就需要使用pm2這個(gè)強(qiáng)大的工具了
安裝pm2官方文檔地址 https://pm2.io/doc/zh/runtime...
執(zhí)行以下命令開(kāi)始安裝
npm install pm2 -g
一個(gè)命令安裝完成,是不是很簡(jiǎn)單?
下面使用pm2來(lái)啟動(dòng)管理node.js運(yùn)行的項(xiàng)目,這里以nest.js開(kāi)發(fā)的項(xiàng)目為例,這部分由于資料有限,找不到pm2啟動(dòng)nest.js項(xiàng)目的說(shuō)明,由于我自己也是初次接觸pm2,整整折騰了8個(gè)小時(shí)才搞定,最后google找到了解決方案,如下:
比如你的nest.js項(xiàng)目路徑是 cd /data/www/project01 則進(jìn)入該項(xiàng)目根目錄下執(zhí)行以下命令
pm2 start npm --name project01 -- start
執(zhí)行完會(huì)出現(xiàn)一個(gè)名為project01的項(xiàng)目online的table,表示該項(xiàng)目通過(guò)pm2啟動(dòng)成功,如果你還有其它項(xiàng)目可執(zhí)行同樣的操作來(lái)啟動(dòng)
將你需要通過(guò)pm2來(lái)啟動(dòng)管理的項(xiàng)目都通過(guò)pm2啟動(dòng)后,執(zhí)行以下開(kāi)機(jī)自啟動(dòng)命令來(lái)實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)這些項(xiàng)目
pm2 startup
執(zhí)行以下命令來(lái)保存當(dāng)前應(yīng)用列表
pm2 save
到此,通過(guò)pm2來(lái)啟動(dòng)管理的項(xiàng)目在服務(wù)器重啟后都會(huì)自動(dòng)啟動(dòng),是不是很方便?
但是還有個(gè)問(wèn)題,因?yàn)檫@些項(xiàng)目都使用了caddy代理,所以caddy也需要實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)才行,否則外網(wǎng)仍然無(wú)法通過(guò)你的域名來(lái)訪(fǎng)問(wèn)這些項(xiàng)目,由于我們已經(jīng)安裝了pm2,他方便強(qiáng)大的特性可以免去我們?nèi)ヅ渲胹ystemd來(lái)實(shí)現(xiàn)caddy的開(kāi)機(jī)自啟動(dòng)了,我們執(zhí)行以下命令
pm2 start caddy --name caddyStart -- -conf /你的Caddyfile路徑/Caddyfile
通過(guò)以上命令我們就實(shí)現(xiàn)了pm2啟動(dòng)管理caddy了,然后我們依然要執(zhí)行一下開(kāi)機(jī)自啟動(dòng)命令和保存命令,如下
pm2 startup pm2 save
重啟你的服務(wù)器,你會(huì)發(fā)現(xiàn)在沒(méi)經(jīng)過(guò)任何手動(dòng)操作的情況下你已經(jīng)可以通過(guò)項(xiàng)目所綁定的域名來(lái)訪(fǎng)問(wèn)你的網(wǎng)站了,是不是很爽?
到此所有配置操作全部完成! 你可以通過(guò)強(qiáng)大的pm2來(lái)監(jiān)測(cè)你服務(wù)器上的項(xiàng)目
pm2常用的命令$ pm2 list # 顯示所有進(jìn)程狀態(tài) $ pm2 monit # 監(jiān)視所有進(jìn)程 $ pm2 logs # 顯示所有進(jìn)程日志 $ pm2 stop all # 停止所有進(jìn)程 $ pm2 restart all # 重啟所有進(jìn)程 $ pm2 reload all # 0 秒停機(jī)重載進(jìn)程 (用于 NETWORKED 進(jìn)程) $ pm2 stop 0 # 停止指定的進(jìn)程 $ pm2 restart 0 # 重啟指定的進(jìn)程 $ pm2 startup # 產(chǎn)生 init 腳本 保持進(jìn)程活著 $ pm2 web # 運(yùn)行健壯的 computer API endpoint (http://localhost:9615) $ pm2 delete 0 # 殺死指定的進(jìn)程 $ pm2 delete all # 殺死全部進(jìn)程
有喜歡kotlin的同學(xué)加下QQ群 26588774
有喜歡nodejs+koa2的同學(xué)加下QQ群 732189938
有喜歡golang的同學(xué)加下QQ群 598189791
有喜歡laravel的同學(xué)加下QQ群 212423075
歡迎來(lái)群里聊美女,談人生,當(dāng)然還有聊技術(shù)O(∩_∩)O
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96268.html
摘要:感謝老師,老師的慕課網(wǎng)教程購(gòu)買(mǎi)阿里云服務(wù)器及域名終端連接阿里云服務(wù)器環(huán)境輸入密碼購(gòu)買(mǎi)時(shí)的密碼如果出現(xiàn)這個(gè)問(wèn)題的解決方案解決方法查看硬盤(pán)掛在情況如果有數(shù)據(jù)盤(pán)的情況下查看硬盤(pán)使用情況通過(guò)設(shè)置快捷登錄權(quán)限,可以增加幾個(gè)擁有權(quán)限的用戶(hù)下查 感謝 Scott 老師,Scott老師的慕課網(wǎng)教程 https://coding.imooc.com/clas... 1. 購(gòu)買(mǎi)阿里云服務(wù)器及域名 2. ...
摘要:感謝老師,老師的慕課網(wǎng)教程購(gòu)買(mǎi)阿里云服務(wù)器及域名終端連接阿里云服務(wù)器環(huán)境輸入密碼購(gòu)買(mǎi)時(shí)的密碼如果出現(xiàn)這個(gè)問(wèn)題的解決方案解決方法查看硬盤(pán)掛在情況如果有數(shù)據(jù)盤(pán)的情況下查看硬盤(pán)使用情況通過(guò)設(shè)置快捷登錄權(quán)限,可以增加幾個(gè)擁有權(quán)限的用戶(hù)下查 感謝 Scott 老師,Scott老師的慕課網(wǎng)教程 https://coding.imooc.com/clas... 1. 購(gòu)買(mǎi)阿里云服務(wù)器及域名 2. ...
摘要:為什么使用部署快只需要幾分鐘,就能部署好一套環(huán)境性能好的性能損失只有,幾乎可以忽略不計(jì)。安全性高容器與宿主機(jī)完全隔離,默認(rèn)情況下不能相互訪(fǎng)問(wèn)。如需強(qiáng)制更改請(qǐng)刪除里面對(duì)應(yīng)數(shù)據(jù)庫(kù)的數(shù)據(jù)。日常修改密碼,請(qǐng)使用或者 為什么使用docker? 部署快 只需要幾分鐘,就能部署好一套PHP環(huán)境 性能好 docker 的性能損失只有1-2%,幾乎可以忽略不計(jì)。 安全性高 容器與宿主機(jī)完全隔離,默認(rèn)情況...
摘要:前言關(guān)于此教程作為一名業(yè)余開(kāi)發(fā)者,因?yàn)楣径际亲龊偷?。。。建議采用的方式下載,可參考官方教程。但是服務(wù)的進(jìn)程管理,即便對(duì)于初學(xué)者來(lái)說(shuō),也是必不可少的一課。 前言 關(guān)于此教程 作為一名業(yè)余Nodejs開(kāi)發(fā)者,因?yàn)楣径际亲鯦ava和C++的。。。我是在沒(méi)有任何人可請(qǐng)教的情況下,一個(gè)坑一個(gè)坑堅(jiān)(ku)實(shí)(bi)地踩過(guò)來(lái)的。作為對(duì)segmentdefault社區(qū)的回報(bào),把自己微不足道的經(jīng)驗(yàn)分...
閱讀 2137·2023-04-25 18:49
閱讀 1840·2019-08-30 14:02
閱讀 2643·2019-08-29 17:24
閱讀 3323·2019-08-28 18:10
閱讀 2926·2019-08-28 18:03
閱讀 488·2019-08-26 12:01
閱讀 3309·2019-08-26 11:31
閱讀 1409·2019-08-26 10:29