nodejs+mongodb+nginx+pm2騰訊云上項(xiàng)目部署

一.騰訊云ESC操作

???? 1.對(duì)應(yīng)實(shí)例 -> 更多 -> 重置密碼


二.安裝nodejs環(huán)境

???? 1. 先安裝源代碼編譯的軟件 gcc,make,openssl 如下:

yum install -y gcc make gcc-c++ openssl-devel

檢查系統(tǒng)中是否已經(jīng)安裝

gcc:rpm -qa | grep gcc | rpm -ql gcc


???? 2.安裝nodejs

yum install -y nodejs

node -v //查看安裝的版本

npm install -g n //使用n管理包,安裝指定的nodejs版本

n 10.16.0 stable //安裝10.16.0版本

重啟CentOS7,這一步是必須的

重啟之后,查看版本 node -v? npm -v


???? 3.安裝cnpm(https://npm.taobao.org/

$ npm install -g cnpm --registry=https://registry.npm.taobao.org


三.安裝mongodb數(shù)據(jù)庫(kù)

官方文檔:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

1.配置 yum 源

vi /etc/yum.repos.d/mongodb-org.repo

執(zhí)行 i 進(jìn)入編輯狀態(tài)

2.mongodb-org-4.0.repo 中寫入如下內(nèi)容(下面內(nèi)容去復(fù)制官方文檔)

[mongodb-org-4.2]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

執(zhí)行 esc :wq enter? 保存并退出

3.執(zhí)行安裝

yum -y install mongodb-org

4.開啟 mongodb 服務(wù)

systemctl start mongod

備注:繼續(xù)輸入mongo,如果出現(xiàn)“連接到MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/”,則表示mongodb服務(wù)啟動(dòng)成功。

5.其他常用命令

開啟 mongodb 服務(wù) : systemctl start mongod

重啟 mongodb 服務(wù): systemctl restart mongod

停止 mongodb 服務(wù): systemctl stop mongod

設(shè)置開機(jī)啟動(dòng) mongodb: systemctl enable mongod


6.Mongodb4.x 卸載

service mongod stop

yum remove -y $(rpm -qa | grep mongodb-org)


7.遠(yuǎn)程連接 mongodb

到mongodb配置文件中修改:

vim? /etc/mongod.conf

將原來(lái) bindIp:127.0.0.1 修改為 0.0.0.0;

如果想改默認(rèn)端口21017為其他端口 ,則在port處改


8.設(shè)置管理員權(quán)限(暫時(shí)沒(méi)弄好)


四.安裝進(jìn)程管理器 pm2

1、pm2 的安裝

npm install pm2 -g


2.啟動(dòng)項(xiàng)目

2.1 將項(xiàng)目文件上傳到服務(wù)器上某個(gè)文件夾下, 如/home下,上傳文件我使用工具finalShell,先在home下創(chuàng)建個(gè)項(xiàng)目目錄,然后直接把本地項(xiàng)目文件拖到這個(gè)目錄下面,不需要上傳本地項(xiàng)目中的node_modules文件夾和package-lock.json文件

2.2 進(jìn)入項(xiàng)目目錄下面: cd? 項(xiàng)目目錄??

2.3 安裝項(xiàng)目所需的所有模塊: npm install

2.4 執(zhí)行:pm2 start main.js --name app1

3.其他常見(jiàn)命令

3.1運(yùn)行 pm2 的程序并指定 name

pm2 start app.js --name www_itying_com

pm2 start app.js -i 3 --name www_itying_com 3 啟動(dòng) 3 個(gè)進(jìn)程 (自帶負(fù)載均衡)


3.2 顯示所有進(jìn)程狀態(tài)

pm2 list


3.3 顯示所有進(jìn)程狀態(tài)

pm2 logs


3.4 顯示一個(gè)進(jìn)程的日志

pm2 logs www_itying_com


3.5 關(guān)閉重啟所有進(jìn)程

pm2 stop all?? # 停止所有進(jìn)程

pm2 restart all? # 重啟所有進(jìn)程

pm2 reload all? # 0 秒停機(jī)重載進(jìn)程 (用于 NETWORKED 進(jìn)程)


五.安裝配置Nginx

1、安裝 nginx 源

rpm -qa | grep nginx (使用這個(gè)命令可以查看有沒(méi)有安裝nginx 源)

sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、查看 Nginx 源是否配置成功

通過(guò) yum search nginx 看看是否已經(jīng)添加源成功。如果成功則執(zhí)行下列命令安裝 Nginx。

或者 npm info nginx 也可以看看 nginx 源是否添加成功;

(源的存放路徑:/etc/yum.repos.d/nginx.repo)

3、安裝 Nginx

sudo yum install -y nginx

4、啟動(dòng) Nginx 并設(shè)置開機(jī)自動(dòng)運(yùn)行

sudo systemctl start nginx

sudo systemctl enable nginx

(查看是否配置成功開機(jī)啟動(dòng):systemctl list-unit-files | grep nginx)

5、關(guān)閉 Selinux

vim etc/selinux/config

修改 SELINUX=enforcing 為 SELINUX=disabled (現(xiàn)在好像默認(rèn)就是disabled,這樣就不需要改了)

必須重啟 linux????????? init 6

6.配置 firewalld 開啟 80 端口

firewall-cmd --zone=public --list-ports

firewall-cmd --zone=public --add-port=80/tcp --permanent

備注:???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Firewalld 防火墻的設(shè)置從 CentOS7(RHEL7)開始,官方的標(biāo)準(zhǔn)防火墻設(shè)置軟件從 iptables 變更為 firewalld,相信不少習(xí)慣使用 iptables 的人會(huì)感到十分不習(xí)慣,但實(shí)際上 firewalld 更為簡(jiǎn)單易用。?

firewalld 的基本使用:

啟動(dòng): systemctl start firewalld

關(guān)閉: systemctl stop firewalld

查看狀態(tài): systemctl status firewalld

開機(jī)禁用 : systemctl disable firewalld

開機(jī)啟用 : systemctl enable firewalld


配置 firewall-cmd :

顯示狀態(tài): firewall-cmd --state

查看所有打開的端口: firewall-cmd --zone=public --list-ports

更新防火墻規(guī)則: firewall-cmd --reload


那怎么開啟一個(gè)端口呢:

firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent 永久生效,沒(méi)有此參數(shù)重啟后失效)

重新載入:

firewall-cmd --reload 修改 firewall-cmd 配置后必須重啟

查看某個(gè)端口:

firewall-cmd --zone= public --query-port=80/tcp

刪除:

firewall-cmd --zone= public --remove-port=80/tcp --permanent


7.配置反向代理

找到nginx的真實(shí)配置文件:在 /etc/nginx/conf.d ,里面有真實(shí)的配置文件: default.conf;然后在里面新建對(duì)應(yīng)網(wǎng)站的配置文件或者直接改default.conf

參考以下示例:

server {

????????? listen 80;? //http默認(rèn)監(jiān)聽80端口,https默認(rèn)監(jiān)聽443端口

????????? server_name? www.bbb.com; (// www.bbb.com改為你自己的域名)

????????? location / {

???????????????? #設(shè)置主機(jī)頭和客戶端真實(shí)地址,以便服務(wù)器獲取客戶端真實(shí) IP

????????????????? proxy_set_header Host $host;

????????????????? proxy_set_header X-Real-IP $remote_addr;

????????????????? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

????????????????? #禁用緩存

????????????????? proxy_buffering off;

????????????????? #反向代理的地址

????????????????? proxy_pass http://127.0.0.1:3001; #(3001是項(xiàng)目中監(jiān)聽的端口)

???????????????? }

}

重啟 nginx : systemctl restart nginx

重啟 pm2 : pm2 reload all


五.配置https

1.在域名服務(wù)商處購(gòu)買SSL證書;

2.下載對(duì)應(yīng)的nginx的證書密鑰;

3.在服務(wù)器中/usr/local/路徑下面創(chuàng)建nginxssl目錄,然后將2中下載的.key和.pem文件拖到nginxssl目錄中;

4.進(jìn)入/etc/nginx/conf.d 目錄下,修改對(duì)應(yīng)網(wǎng)站的conf文件或者default.conf;

5.修改,可以參考阿里云服務(wù)器上的文檔;以下是自己的例子

參考

6.重啟 nginx:??? systemctl restart nginx

7.重啟 pm2: pm2 reload all

8.完結(jié)!


六.nginx如何配置同時(shí)支持http和https訪問(wèn)

參考鏈接:https://blog.csdn.net/h330531987/article/details/81288877

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容