美文网首页部署
一、阿里云服务器从购买到部署 nodejs+vue

一、阿里云服务器从购买到部署 nodejs+vue

作者: YiYaYiYaHei | 来源:发表于2021-09-01 09:58 被阅读0次

    最近在学习微信小程序,就顺便想了解下上线的那套部署流程~
    服务器:阿里云 ECS共享型 n4云服务器
    后端:NodeJs
    数据库:MySQL
    前端:Vue

    一、服务器购买与搭建MySQL

    1.1 服务器购买

    图1-1:服务器一般有阿里云,百度云,腾讯云,各自选择即可,我这里选择阿里云

    图1-1
    图1-2:购买成功后,可以在“管理控制台中”看到
    图1-2
    图1-3

    1.2 连接服务器

    连接的方式有很多种,这里以阿里云网页连接为列,还有Xshell软件
    密码重置与远程连接(端口默认22)

    图1-3
    图1-4
    至此,服务器连接成功。

    1.3 CentOS-8安装mysql-8.0

    1. 通过以root用户使用CentOS软件包管理器来安装MySQL 8.0服务器:
      sudo dnf install @mysql
      图1-5
      会自动下载,下载完毕后,直接启动mysql服务
    2. 启动mysql服务
      systemctl start mysqld.service
      图1-6
    3. 登录mysql
      mysql -u root -p
      图1-7
      图1-8
    4. 修改mysql密码
      ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
      图1-9
    5. 创建远程访问
    CREATE USER 'root'@'%' IDENTIFIED BY '你设置的密码';
    GRANT ALL ON *.* TO 'root'@'%';
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你设置的密码';
    
    图1-10
    1. 访问
      关闭防火墙 或者 开启我们的3306端口就可以进行访问了
    # 查看firewall服务状态
    systemctl status firewalld
    
    # 开启、重启、关闭、firewalld.service服务
    # 开启
    service firewalld start
    # 重启
    service firewalld restart
    # 关闭
    service firewalld stop
    
    # 查看防火墙规则
    firewall-cmd --list-all    # 查看全部信息
    firewall-cmd --list-ports  # 只看端口信息
    
    # 开启端口
    开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
    重启防火墙:systemctl restart firewalld.service
    
    命令含义:
    --zone #作用域
    --add-port=80/tcp  #添加端口,格式为:端口/通讯协议
    --permanent   #永久生效,没有此参数重启后失效
    

    关闭防火墙(不建议)

    systemctl stop firewalld.service
    

    开启端口(建议)

    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    
    图1-11

    成功之后我们需要重启我们的防火墙

    systemctl restart firewalld.service
    
    图1-12

    然后就可以连接啦~


    图1-13

    如果不行,检查下阿里云服务器MySQL是否开启了远程访问(见1.4)

    1.4 阿里云服务器MySQL开启远程访问

    上一步连接成功的,可以跳过此步~
    登录阿里云进入控制台,依次访问 实例 ->(升降配下的)更多 -> 网络和安全组 -> 安全组配置 -> 配置规则

    图1-14
    图1-15
    图1-16

    二、部署后端包(nodejs)

    2.1 安装 nodejs

    在 node 官网上下载对应的安装包,上传到服务器并解压,我把安装包放在 /usr/local/lib/nodejs 下,执行以下5句

    # 创建nodejs文件夹,并上传nodejs压缩包
    mkdir /usr/local/lib/nodejs
    # 解压nodejs压缩包
    tar -xzvf /usr/local/lib/nodejs/node-v12.12.0-linux-x64.tar.gz -C /usr/local/lib/nodejs
    # 重命名为node-v12.12.0
    mv /usr/local/lib//nodejs/node-v12.12.0-linux-x64  /usr/local/lib/nodejs/node-v12.12.0
    # 建立软连接  在 bin 下创建 node、npm快捷方式,方便全局使用
    ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/npm /usr/local/bin
    ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/node /usr/local/bin
    

    2.2 测试 nodejs是否安装成功

    图2-1

    2.3 上传后端代码

    我是以nodejs作为后端滴

    # 1. 进入/usr/local文件夹
    cd /usr/local
    # 2. 创建develop文件夹,用于放前后端代码
    mkdir develop
    # 3. 进入develop文件夹,并上传node服务代码
    cd develop
    # 4. 安装依赖包
    npm i
    # 5. 安装supervisor (supervisor 是 node 应用的进程管理器)
    npm install supervisor -g
    
    • 注意:执行supervisor app.js时,如果遇到报"-bash: supervisor: command not found", supervisor已经安装的情况下,请注意看下是否装在 /usr/local/bin/ 目录下;如果不是说明安装目录不对,Mac默认访问执行文件的目录在 /usr/local/bin/,所以需要保证我们的执行模块安装在该目录下。


      图2-2
    • 解决办法如下
    npm config get prefix                        // 获取npm全局安装目录
    npm config set prefix /usr/local        // 修改安装目录为Mac可执行文件目录;注意这里不需要加上/bin
    npm install supervisor -g
    supervisor app.js
    

    2.4 开启后端端口

    1. 检查防火墙是否开启


      图2-3
    2. 查看端口是否开放(这里后端开启13666端口)
    # 查看13666端口是否开放  yes表示开启;no表示未开启。
    firewall-cmd --query-port=13666/tcp
    # 添加指定需要开放的端口:
    firewall-cmd --add-port=13666/tcp --permanent
    # 重载入添加的端口:
    firewall-cmd --reload
    # 查询指定端口是否开启成功:
    firewall-cmd --query-port=13666/tcp
    
    图2-4

    2.5 守护进程--supervisord

    到这里,nodejs和后端就部署完成啦~但还差一步就是安装守护进程supervisord并设置开机自启动,因为如果不安装supervisord,当我们关闭xshell时后端就会停止服务,所以我们需要一个工具去让我们的后端进程一直开启,这就是supervisord存在的意义(当然守护进程还有很多 这里以supervisord为例)

    1. 安装supervisor
      yum install -y supervisor
      图2-5
    2. 设置开机自启动
      systemctl enable supervisord
    3. supervisord管理命令
    systemctl stop supervisord
    systemctl start supervisord
    systemctl status supervisord
    systemctl reload supervisord
    systemctl restart supervisord
    
    图2-6
    1. 修改配置文件
      输入指令vim /etc/supervisord.conf
      图2-7
      输入指令cat /etc/supervisord.conf
      图2-8
      图2-9
    2. 创建Supervisord文件
    mkdir /etc/supervisord.d
    cd /etc/supervisord.d
    touch supervisord.ini
    
    图2-10
    输入指令vim /etc/supervisord.d/supervisord.ini并粘贴下列代码
    #这里的node-supervisord就是我们显示在web前端以及终端的监控名称
    [program:node-supervisord]
    #启动命令 : 此处我的node服务启动命令是supervisor app.js (/usr/local/develop/back-end/app.js为我们要监控的文件地址)
    command=supervisor /usr/local/develop/back-end/app.js  
    autostart=true
    autorestart=true
    startsecs=1
    startretries=3
    redirect_stderr=true
     #日志地址,可自行配置目录(需要自己创建)
    stdout_logfile=/etc/supervisord.log/access_supervisord.log  
    #日志地址,可自行配置目录(需要自己创建)
    stderr_logfile=/etc/supervisord.log/error_supervisord.log     
    
    图2-11
    1. 创建日志文件
    mkdir /etc/supervisord.log
    cd /etc/supervisord.log
    touch {error_supervisord.log,access_supervisord.log}
    
    图2-12
    1. 重启supervisor
      输入命令systemctl restart supervisord
      图2-13
      # 参考Centos7.x 安装 Supervisord

    三、安装nginx

    在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可。

    # 1.先安装gcc-c++编译器
    yum install gcc-c++
    yum install -y openssl openssl-devel
    # 2.再安装pcre包
    yum install -y pcre pcre-devel
    # 3.再安装zlib包
    yum install -y zlib zlib-devel
    # 4. 添加rpm源(一般/etc放配置文件,/usr/local放用户代码)
    rpm -Uvh [http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm](https://links.jianshu.com/go?to=http%3A%2F%2Fnginx.org%2Fpackages%2Fcentos%2F7%2Fnoarch%2FRPMS%2Fnginx-release-centos-7-0.el7.ngx.noarch.rpm)
    # 5. 查看源是否添加成功
    yum search nginx
    # 6. 安装nginx
    yum install -y nginx
    # 7. 设置开机自启动
    systemctl enable nginx
    # 8. 允许HTTP和HTTPS通信
    sudo firewall-cmd --permanent --zone=public --add-service=http 
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    
    

    图3-1:安装nginx


    图3-1

    图3-2:查看nginx状态是否为active


    图3-2
    图3-3:查看nginx开启的端口(nginx 默认80端口)
    图3-3

    图3-4:修改nginx端口为8081


    图3-4
    图3-5:重启nginx,并查看8081端口是否开启
    图3-5
    图3-6: 开放8081端口
    图3-6
    图3-7:查看url是否可达
    图3-7
    图3-8:外网映射
    图3-8
    图3-9

    图3-10:访问 公网ip+nginx端口


    图3-10
    • 最后设置开机自启动
      systemctl enable nginx

    四、部署前端包

    1. 将前端包放到/usr/local/develop/web-front-end中


      图4-1
    2. 修改nginx配置(/etc/nginx/nginx.conf)


      图4-2
    3. 重启nginx
      systemctl restart nginx
    4. 访问 公网ip+nginx端口


      图4-3

    文件位置

    nodejs包:/usr/local/lib/nodejs
    后端代码:/usr/local/develop/back-end
    前端代码:/usr/local/develop/web-front-end
    nginx:/etc/nginx
    supervisor配置文件(修改ip、端口等): /etc/supervisord.conf
    supervisor设置启动命令:/etc/supervisord.d/supervisord.ini
    supervisor日志文件:/etc/supervisord.log
    
    

    常用指令

    (1)基本命令
    创建a文件夹 :mkdir /usr/local/lib/a
    创建b文件:touch b.txt
    创建c、d文件:touch {c.txt,d.txt}
    解压a.tar.gz压缩包:tar -xzvf /usr/local/lib/nodejs/a.tar.gz -C /usr/local/lib/nodejs
    重命名为b:mv /usr/local/lib/nodejs/a  /usr/local/lib/nodejs/b
    建立软连接  在 bin 下创建 node、npm快捷方式,方便全局使用:
    ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/npm /usr/local/bin
    ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/node /usr/local/bin
    
    (2)查看防火墙状态
    查看防火墙状态:systemctl status firewalld
    开启防火墙:systemctl start firewalld    或    service firewalld start 
    关闭防火墙:systemctl stop firewalld    或     service firewalld stop
    重启防火墙:systemctl restart firewalld   或 service firewalld restart
    设置开机自启动:systemctl enable firewalld
    # 查看防火墙规则
    查看全部信息 firewall-cmd --list-all
    只看端口信息firewall-cmd --list-ports
    
    若遇到无法开启
    先用:systemctl unmask firewalld.service 
    然后:systemctl start firewalld.service
    
    (3)查看对外开放的端口状态
    查询已开放的端口:netstat -anp
    查询指定端口是否已开 :firewall-cmd --query-port=666/tcp (提示 yes,表示开启;no表示未开启。)
    查询nginx进程:netstat -anop | grep nginx
    杀进程:kill -9 进程pId
    
    (4)对外开发端口
    查看想开的端口是否已开:firewall-cmd --query-port=6379/tcp
    添加指定需要开放的端口:firewall-cmd --add-port=123/tcp --permanent
    重载入添加的端口:firewall-cmd --reload
    查询指定端口是否开启成功:firewall-cmd --query-port=123/tcp
    移除指定端口:firewall-cmd --permanent --remove-port=123/tcp
    
    (5)supervisor
    停止:systemctl stop supervisord
    开启:systemctl start supervisord
    查看状态:systemctl status supervisord
    重载:systemctl reload supervisord
    重启:systemctl restart supervisord
    开机自启动:systemctl enable supervisord
    
    (6)虚拟机相关
    查看虚拟机列表:virsh list --all
    虚拟机关机:virsh shutdown 虚拟机名称
    虚拟机开机:virsh start 虚拟机名称
    
    (7)服务器相关
    服务器立即关机:shutdown -h now
    服务器重启:reboot
    
    (8) 其他
    url是否可达:curl -XGET http://1.1.1.1:8081
    后台运行进程:nohup 命令 &     
                 示例:nohup node app.js &,这种关闭xshell,进程就关了,所以需要写启动关闭脚本 + 服务
    

    推荐文章

    二、阿里云服务器配置https

    相关文章

      网友评论

        本文标题:一、阿里云服务器从购买到部署 nodejs+vue

        本文链接:https://www.haomeiwen.com/subject/mljfpltx.html