运维系列 阿里云node项目部署

299 阅读3分钟

node小白,从未接触过使用阿里云需要的相关配置。so,并不是很难,要相信自己啊。 这是我基于thinkjs框架的node项目在阿里云上部署的经过,希望对你有帮助:smirk:。

导图镇楼

思维脑图

mysql(8.0版本)数据库部署

数据库的部署,请按照思维导图中的教程文章进行,但是有两点需要注意。

  1. 在教程的一系列的下载安装操作中,落了安装mysql-community-server-8.0.13-1.el7.x86_64.rpm,这会导致mysql服务无法启动,因为服务都没安装。:sweat_smile:

  2. mysql安装好了之后,第一步是重置密码,但是mysql8版本的密码在log文件(路径在/var/log/mysqld.log)中能够找到,如果没找到密码,请在网上搜索展示日志路径的unix命令。知道密码,通过mysql -uroot -p初始密码就可以进入命令行

  3. 推荐使用客户端的远程链接功能操作数据库

推荐一些常用的命令

命令 含义
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysql服务
systemctl restart mysqld 重启mysql服务
mysql -u用户名 -p密码 进入mysql的命令行环境,注意用户名紧跟着-u,密码紧跟着-p

nginx服务器配置

请按照我列出来的教程开始操作,直接跳到nginx章节。对于该教程的补充如下:

  1. 首先推荐先安装一个ftp的文件管理系统,方便可视化操作(注意设置软件的编码格式未utf-8,避免中文乱码问题)
  2. 其次,该教程中在sites-enabled-server内新增文件,推荐直接在ftp系统中新增文件,我直接在命令行文件操作,导致创建的文件带后缀,引发错误。
  3. 不要尝试下载node代码,再进行编译,巨慢。推荐直接网上找node的编译好的版本,可以在这个链接中下载xz文件(nodejs.org/dist/latest…),推荐文章: 部署Node.js项目(CentOS)
  4. 如果是单文件项目,首先注意api接口的反向代理,另外需要当心history模式下的路由转发,以及静态文件问题。
  5. 开启gzip压缩

阿里云配置

阿里云配置就简单多了,当然,这可能是作者的一厢情愿,毕竟我也只是小白罢了:joy:

目前需要的仅仅只是安全组的设置,也就是端口的开放,不然无法设置mysql的远程链接,以及其他和端口相关的服务了。

前端代码部署

一言以蔽之:打包上传到指定路径即可

后端代码部署

同前端部署:打包上传到指定路径。当然,既然是node项目,那么pm2进程守护还是要上的,所以再开启pm2即可。

另外,PM2的简易教程,请看我的另一篇文章,或许有用哦:运维系列 pm2进程守护基础使用

如果你的服务无法使用,请查看上文nginx配置是否有问题。

域名以及备案问题

如果是需要再国内使用且需要备案的,推荐直接在阿里云或者腾讯云上购买相关服务。毕竟一站式解决需求,还是可以的。

最后的最后,吐槽下,备案真的是麻烦啊:triumph: