server清单

功能性能IP
proxy4*8G112.124.42.190
nginx14*8G118.178.146.167
nginx22*2G120.55.245.167
java12*2G47.118.28.30
java22*2G120.55.248.42
redis12*2G112.124.100.223
redis22*2G47.110.94.89
redis32*2G120.55.246.134
mysql12*2G121.41.105.171
mysql22*2G47.110.93.56
mysql32*2G47.118.22.189

搭建流程

之前有搭过,之前的是访问nginx然后通过nginx进行动静分离的流量转接
现在是通过反向代理,来访问,除了proxy是公网访问,剩下的都是私网互相访问

前置基础

将所有ecs的3306,6379,48080端口全部开放

msyql的MGR集群

本来应该使用之前写好的剧本直接部署,但是不知道为啥在本地还好好的
但是放在ecs上就报错了,然后搞得搞了半天,手动都搞不了,最后迫不得已初始化ecs,手动部署mgr
mysql是通过shell脚本安装的
远程用户也需要创建,后面的java要访问

redis部署与哨兵模式

这个就更简单了,直接用提前写好的ansible剧本一键安装

java后端

  1. git源码到本地,然后将application-local.yml文件里面的mysql和redis的ip、账号和密码配置
  2. 下载jdk和maven并配置环境变量
  3. 编译源码

nginx前端

  1. git前端源码
  2. 进入项目根目录用npm install安装依赖
  3. 修改三个配置文件,env配置中路径写/prod-api
  4. 然后构建安装,创建一个目录/var/www/,将构建好的dist-prod目录拷贝到这个目录
  5. 让nginx配置文件中root指向这个目录

proxy反向代理

  1. 这台是做流量分离
  2. 下载了nginx后配置两个upstream,实现动态分离,静态的指向nginx(私网),动态指向java(私网)
  3. 请求头也需要配置