基于SpringBoot+Vue的项目在阿里云服务器生产环境部署指南

  • Post author:
  • Post category:vue




一个http请求基本流程

客户端通过发起域名资源请求 -> DNS解析获得IP -> 寻找服务器获得资源域名和ip的关系



DNS作用

DNS:Domain Name Server 域名服务器 域名虽然便于人们记忆,但网络中的计算机之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器



什么是cname和a记录


a记录

:用户可以在此设置域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器(也叫ip指向域名配置)


cname

:别名指向,可以为一个主机设置别名。比如设置open1024.com,用来指向一个主机 xdclass.net 那么以后就可以用open1024.com来代替访问 xdclass.net 了



流程

  1. 购买服务器,阿里云,腾讯云,亚马逊云aws
  2. 购买域名,备案:阿里云备案地址:

    https://beian.aliyun.com/
  3. 安装项目依赖的基本环境,比如java、nginx等软件(看项目)
  4. 配置域名解析到服务器

备注:后端项目一般部署Linux服务器,前端静态资源可以部署Linux也可以部署在CDN上



租用阿里云服务器

阿里云新用户地址:

https://www.aliyun.com/minisite/goods?userCode=r5saexap&share_source=copy_link


我已经不是新用户了,新用户价格很低,建议第一次多买几年↓


在这里插入图片描述


建议,其他的根据实际情况选择即可:


在这里插入图片描述



阿里云服务器远程登录


购买完毕后,控制台修改阿里云远程连接密码


在这里插入图片描述

在这里插入图片描述


修改完密码后要重启实例才能生效


在这里插入图片描述


Windows远程连接工具

:Putty/Xshell


Windows下linux图形操作工具(用于远程连接上传文件)

:winscp


关于这两个软件的安装可以自己找教程


远程登录winscp,并将 jdk17 和 nginx 压缩包上传到

/usr/lcoal/software

目录下:


在这里插入图片描述
在这里插入图片描述


putty远程登录:


在这里插入图片描述
在这里插入图片描述



阿里云服务器Centos7安装环境



安装jdk17环境

解压:

tar -zxvf jdk-17_linux-x64_bin.tar.gz


配置全局环境变量:

vim /etc/profile

# 放到文件的最后
JAVA_HOME=/usr/local/software/jdk-17.0.6
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

环境变量立刻生效:

source /etc/profile


查看安装情况:

java -version



安装ngnix环境

安装依赖:

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

把上传的安装包放到新建的单独文件夹nginx中:

解压:

tar -zxvf nginx-1.13.7.tar.gz

# 依次执行
./configure
make
make install

默认安装路径:

/usr/local/nginx

(自动生成)


访问配置:

cd /usr/local/nginx/sbin   
./nginx


此时使用服务器公网ip可以访问验证:


在这里插入图片描述



阿里云服务器Mysql安装和导入数据

  • 安装Mysql 5.7 (注意,Mysql和系统务必保持一致,不然存在不一致)
  • 开启mysql远程连接(如果是准线上,建议不要开启远程连接)
  • 开放阿里云网络安全组配置 3306 端口
  • 导入测试数据到Mysql
#下载mysql的Yum仓库
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum -y install mysql57-community-release-el7-10.noarch.rpm

#安装 mysql服务
yum -y install mysql-community-server

#启动数据库服务, systemctl 该命令可用于查看系统状态和管理系统及服务,centos7上开始使用
systemctl start  mysqld.service

#查看状态
systemctl status mysqld.service

#在日志文件中查看初始密码
grep "password" /var/log/mysqld.log

#进入修改Mysql密码

mysql -uroot -p

#新密码设置必须由大小写字母、数字和特殊符号组成
ALTER USER 'root'@'localhost' IDENTIFIED BY '123123';

#开启mysql的远程访问, %是指全部
grant all privileges on *.* to 'root'@'%' identified by '123123' with grant option;

#刷新权限
flush privileges; 

在这里插入图片描述
在这里插入图片描述



阿里云域名备案、解析A记录配置

域名注册:

https://wanwang.aliyun.com/domain/


备案地址:

https://beian.aliyun.com/



备案周期大概在一周左右

备案成功后需要进行解析:

解析地址:

https://dns.console.aliyun.com/


添加两条记录,记录值填写云服务器公网ip:


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


可以通过配置的域名访问云服务器:


在这里插入图片描述



后端Java API项目阿里云服务器部署



项目打包、上传

在这里插入图片描述

在这里插入图片描述


打包成功后,在项目目录的target文件夹下会有一个jar包:


在这里插入图片描述


上传到云服务器

/usr/local/software/api

目录下:


在这里插入图片描述


创建application.properties文件,把项目中的配置文件ip地址改为服务器公网ip,数据库密码改为部署在服务器上的mysql的密码:


在这里插入图片描述


启动应用指定外部文件,执行:


nohup java -jar -Dspring.config.location=./application.properties demo-0.0.1-SNAPSHOT.jar &


ctrl+c终止

,可以看到生成了nohup.out文件

在这里插入图片描述

在这里插入图片描述


执行:


tail -f nohup.out


在这里插入图片描述


此时启动成功

回退到software目录下,将api目录复制一个api2,删除nohup.out文件,将application.properties文件中的端口更换一个新的,重复执行

nohup java -jar -Dspring.config.location=./application.properties demo-0.0.1-SNAPSHOT.jar &



tail -f nohup.out

检验是否启动成功:

curl 127.0.0.1:8088/api/v1/pub/video/banner


(端口后的接口路径是我自己项目中设置的接口)

在这里插入图片描述


在安全组中配置application.properties中的端口,可以通过公网ip访问内容:


在这里插入图片描述



前端项目打包上传阿里云服务器

前端项目运行

cnpm run build

打包

在这里插入图片描述

在项目目录中生成一个dist文件夹,上传到云服务器的

/usr/local/software/front

目录下

在这里插入图片描述

在这里插入图片描述


前端配置Nginx:打开ngnix的nginx.conf配置文件,修改root对应的值为dist文件的路径


在这里插入图片描述


重启nginx:


./nginx -s reload


等待两三分钟后可以通过域名搜索到配置的项目:

因为api没有配置,所以还都是空的内容

在这里插入图片描述



后端API多节点集群部署

**多节点启动:**节点1:部署在

/usr/local/software/api

;节点2:部署在

/usr/local/software/api2


配置nginx集群访问:

# lbs可以自定义成其他
upstream lbs {
   server 172.18.216.171:8081;
   server 172.18.216.171:8088;
}

location /api/ {
    proxy_pass http://lbs;
    proxy_redirect default;
}

在这里插入图片描述


进入nginx的sbin目录重启nginx,刷新网页,验证部署成功:


在这里插入图片描述



版权声明:本文为qq_46033586原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。