从零开始构建部署上线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记录所对应的服务器。
RSPT项目的域名解析实例:
八、向服务器正式部署和发布上线
上传项目代码到线上git私有仓库
本地到第三方仓库
1. 本地一定要先安装git仓库,mac下可以通过:brew install git;
- 私有仓库(代码托管平台)我选择免费的私有仓库 码云(https://git.oschina.net/);如果大家不在乎开源不开源的话,也可以去选择github。
将本地生成的公钥(rsa.pub)填写在码云的平台上,具体怎么填写,网站帮助也有介绍。项目仓库有自己的ssh地址,例如:
终端进入本地的项目文件夹,通过 ll -a 命令查看本地是否有 .git文件夹,如果没有,就说明就是干净的仓库,然后通过 git
init 初始化这个干净的仓库;再通过 git add . 添加所有的文件,然后通过 git commit -m ‘First Commit’。然后通过:
将本地的git仓库关联到线上的私有仓库
最后通过:
将本地的代码给上传push到线上
我当时做的时候push失败,则可以把 -u 改成 -f 变成强制push到线上解决问题。
服务器git仓库抓取第三方仓库的内容:
-
将服务器上的公钥存到第三方平台(码云),例如:
这样服务器就有权限获取码云平台下的代码了。 - 然后在服务器测试下:
像这样操作就可以把码云平台上的项目代码拉取到服务器下了。
配置PM2,一键部署线上项目结构
通过pm2部署的话,可以采用写一些配置文件,官网中有介绍;本地项目中新建一个json文件,名字叫做ecosystem.json,RSPT完整成功配置文件如下:
-
首先本地也需要安装pm2,然后终端打开本地项目地址,通过:
部署到服务器上,此刻服务器上应该有和ecosystem.json配置文件中写的一模一样的项目文件地址,如果服务器上没有创建,这时需要去服务器上创建文件夹,例如(参考,文件地址不是我项目的地址):
还有在执行部署pm2的命令之前,还要把服务器中的项目文件夹的权限升级,让rspt_manager管理员可以有权利去读取,例如:
website改为RSPT文件夹
部署之后,在服务器中就有项目代码传到服务器上了,查看命令例如:
如果部署时候遇到了:
原因是pm2在服务器上使用的是非交互的ssh连接方式,可以在服务器上编辑脚本:
将:
中case 这整体的脚本都注释掉。修改后通过命令:source .bashrc 来提交修改的内容。然后别忘了将ecosystem.json也传到服务器上:例如:
如果这一切都搞定了,执行pm2 deploy命令后如果出现:
说明部署成功。
这时候我的项目已经可以通过公网地址在网上访问了,接下来是域名指向,由于备案原因,最后域名的问题还有SSL证书的学习和实践晚点发布。