从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)

该系列文章总汇链接
从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(一)
从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(二)
从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(三)
从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(四)
从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)
从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(六)

七、DNS管理域名解析

因为我是在阿里云上购买的域名和服务器,配套送了阿里云的域名解析,所以就使用阿里云来解析和管理我的域名。也很方便。

  • 什么是权威DNS?

    从字面意思也可以看出,权威就是该域名及下级域名的“说了算”的服务器;在权威上可以设置,修改,删除该区域内的解析记录, 而非权威DNS只能是查询.

  • 什么是Local DNS?

    Local DNS 也是和我们日常上网接触最多的DNS包括你的服务提供商(ISP)分配给你的DNS(一般为两个),或者接下来讲到的公共DNS。又因为填写在你的本地电脑上,所以也称为Local DNS

  • 什么是公共DNS?

    我们都知道,我们要能上网,就必须要使用DNS。这个DNS可能是你的运营商提供给你的,也可以是一些其它组织提供的,比如我们熟知的谷歌的8.8.8.8,国内114dns的114.114.114.114. 。他们负责给我们的请求提供解析服务。
    不过首先要明白,公共DNS不是:
    不是根服务器
    不是权威dns托管商,不提供域名注册等服务,比如万网和DNSpod
    不是权威dns,不针对个别域名进行解析
    公共DNS服务的特点就是服务的域名数量巨大,用户数多,同时要求具有安全性和抗攻击性,低延迟(响应快),无拦截(无广告)以及对解析成功率要求非常的高。

  • 什么是A记录?

    A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server,FTP server等上面。同时也可以设置域名的子域名。 通俗的来讲A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。

从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第1张图片

RSPT项目的域名解析实例:

从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第2张图片

八、向服务器正式部署和发布上线

上传项目代码到线上git私有仓库

本地到第三方仓库
1. 本地一定要先安装git仓库,mac下可以通过:brew install git;

  1. 私有仓库(代码托管平台)我选择免费的私有仓库 码云(https://git.oschina.net/);如果大家不在乎开源不开源的话,也可以去选择github。
  2. 将本地生成的公钥(rsa.pub)填写在码云的平台上,具体怎么填写,网站帮助也有介绍。项目仓库有自己的ssh地址,例如:
    这里写图片描述

  3. 终端进入本地的项目文件夹,通过 ll -a 命令查看本地是否有 .git文件夹,如果没有,就说明就是干净的仓库,然后通过 git
    init 初始化这个干净的仓库;再通过 git add . 添加所有的文件,然后通过 git commit -m ‘First Commit’。

  4. 然后通过:
    这里写图片描述 将本地的git仓库关联到线上的私有仓库

  5. 最后通过:
    这里写图片描述将本地的代码给上传push到线上
    我当时做的时候push失败,则可以把 -u 改成 -f 变成强制push到线上解决问题。

服务器git仓库抓取第三方仓库的内容:

  1. 将服务器上的公钥存到第三方平台(码云),例如:

    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第3张图片

    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第4张图片
    这样服务器就有权限获取码云平台下的代码了。

  2. 然后在服务器测试下:
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第5张图片
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第6张图片
    像这样操作就可以把码云平台上的项目代码拉取到服务器下了。

配置PM2,一键部署线上项目结构

  1. 通过pm2部署的话,可以采用写一些配置文件,官网中有介绍;本地项目中新建一个json文件,名字叫做ecosystem.json,RSPT完整成功配置文件如下:
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第7张图片

  2. 首先本地也需要安装pm2,然后终端打开本地项目地址,通过:
    这里写图片描述

    部署到服务器上,此刻服务器上应该有和ecosystem.json配置文件中写的一模一样的项目文件地址,如果服务器上没有创建,这时需要去服务器上创建文件夹,例如(参考,文件地址不是我项目的地址):

    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第8张图片

    还有在执行部署pm2的命令之前,还要把服务器中的项目文件夹的权限升级,让rspt_manager管理员可以有权利去读取,例如:
    这里写图片描述 website改为RSPT文件夹

  3. 部署之后,在服务器中就有项目代码传到服务器上了,查看命令例如:
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第9张图片

  4. 如果部署时候遇到了:
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第10张图片
    原因是pm2在服务器上使用的是非交互的ssh连接方式,可以在服务器上编辑脚本:
    这里写图片描述
    将:从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第11张图片
    中case 这整体的脚本都注释掉。修改后通过命令:source .bashrc 来提交修改的内容。

  5. 然后别忘了将ecosystem.json也传到服务器上:例如:
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第12张图片

  6. 如果这一切都搞定了,执行pm2 deploy命令后如果出现:
    从零开始构建部署上线Node.js+Express+Bootstrap+Jade响应式网站应用—RSPT丨留学生活第一站(五)_第13张图片
    说明部署成功。

这时候我的项目已经可以通过公网地址在网上访问了,接下来是域名指向,由于备案原因,最后域名的问题还有SSL证书的学习和实践晚点发布。

你可能感兴趣的:(Nodejs)