阿里云服务项目部署图文教程

504 阅读4分钟

本文会介绍一个在一个干净的云服务上部署项目的过程。关于如何购买云服务不会做过多赘述,网上有很多教程。

一、内容大纲

  • 登录服务器
  • 下载安装 git,下载我们要部署的项目
  • 下载安装 node.js
  • 下载安装配置 nginx
  • 项目运行
  • 使用 pm2 管理进程

二、登录服务器

首先,我们进入控制台,看看已经创建好的实例。这里有实例的详细信息包括服务器相关参数、实例 ID、公网 IP 等。如果我们实例刚创建完还没有设置密码,我们可以点击重置密码去设置一个登录密码。

image.png

接下来,我们在自己的电脑上通过 SSH 进行登录。

// 连接云服务器 然后输入我们之前设置密码进行登录
ssh root@120.24.206.53

image (1).png

三、下载安装 git,下载我们要部署的项目

安装 git

// 在Linux上使用yum安装Git
yum -y install git

image (2).png

image (3).png 查看 git 版本

git --version

image (4).png

下载代码

// 把我们的代码 clone 到服务器
git clone https://github.com/BODhaha/zhihu.git

image (5).png

image (6).png

四、下载安装 node.js

官网 找到我们要安装的 node 版本,右键复制下载地址。

image (7).png 下载node 包

// 下载node 包
wget https://nodejs.org/dist/v16.13.2/node-v16.13.2-linux-x64.tar.xz

image (8).png 解压文件

// 解压文件
tar xvf node-v16.13.2-linux-x64.tar.xz

解压结果 image (9).png 配置环境变量 vim .bashrc

image (10).png 记得 source .barshrc 一下,让我们的配置生效。

然后我们可以查看下 node 和 npm 版本看下是否配置成功。

image (11).png

五、下载安装配置 nginx

nginx 常用命令

// 启动 nginx
nginx
// 重启 nginx
nginx -s reload
// 快速停止
nginx -s stop
// 正常停止
nginx -s quit
  1. 因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。
// 因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

image (12).png 2. 安装 nginx

我们先去官网找到现安装的版本nginx.org/en/download…

image (13).png 下载 nginx

// 下载 nginx
wget -c http://nginx.org/download/nginx-1.20.2.tar.gz

image (14).png 解压下载包

// 解压
tar -zxvf nginx-1.20.2.tar.gz

image (15).png 进入 nginx-1.20.2 目录

// 进入 nginx
cd nginx-1.20.2

我们可以查看下 nginx 目录看一看

image (17).png

配置 nginx 安装路径,我们制定到 /usr/local/nginx 这个目录下。

./configure --prefix=/usr/local/nginx

image (16).png

编译 make

image (18).png 安装 make install

image (19).png

image (20).png

  1. 配置环境变量

image (21).png

image (22).png

// 我们 source .bashrc 一下,配置的环境变量就生效了
source .bashrc

image (23).png

  1. 编辑 nginx 配置文件,添加端口转发

image (24).png

image (25).png

修改完配置文件,我们可以 nginx -t 看下有没有啥语法错误,然后启动 nginx 配置生效。

如果启动 nginx 报 80 端口被占用错误,我们可以通过过 netstat -ntlp 查看下进程,找到对应占用 80 端口的进程,并杀掉这个进程 kill pid

如果我们配置好了 nginx,并且启动了,也检查了防火墙端口,发下仍然无法访问。那么我们要去阿里云控制台添加下安全组。

image (26).png

image (28).png

image (27).png

六、运行项目

我们进入之前下载好的项目,执行 npm i 安装依赖,然后 npm run dev 运行一下,在通过我们之前配置在 nginx 里的 80 端口转发,去访问我们的项目。可以看到是访问正常。

image (29).png

七、使用 PM2 管理进程

因为我们关闭命令行工具,就无法访问我们的项目了,可以通过 pm2 来使我们的应用保持在后台。

安装 pm2

// 全局安装 pm2
npm i pm2 -g

pm2 常用命令

// 启动 pm2:pm2 start 运行脚本
pm2 start app/index.js

查看 pm2 管理的进程

// 查看 pm2 管理的进程
pm2 ls

image (31).png

// 关闭指定进程: pm2 stop 进程名称
pm2 stop index

// 关闭所有进程
pm2 stop all

image (32).png

重启进程

// 重新启动
pm2 restart index

// 不间断重启
pm2 reload index

设置环境变量

// 设置环境变量
NODE_ENV=production pm2 start index

// 更新环境变量
NODE_ENV=production pm2 start index --update-env

// 使 log 带上日期
NODE_ENV=production pm2 restart index --update-env --log-date-format "YYYY-MM-DD HH:mm"

查看日志

// 查看日志
pm2 log index

// 查看所有日志
pm2 logs

到这里就结束啦!!!❤️❤️❤️

参考文档

Linux安装Git-两种方式详细教程

Linux安装Nginx详细教程

linux服务器安装nginx及使用

Linux服务器安装配置Nginx服务器 

启动 nginx

阿里云安全组端口开放教程