
学习环境搭建(二)项目部署
本次将记录根据以下服务架构图部署项目到此前搭建好的学习环境将部署一个基于若依二次开发的工具系统,在server01中部署前端静态资源,并配置nginx负载均衡到server01、server02的springboot应用上,server01、server02中的springboot应用将使用docker部署vue+springboot集群的部署并不难,但依然存在以下问题:1.由于集群的关系,对于上
一、概述
背景
本次将记录根据以下服务架构图部署项目到此前搭建好的学习环境
将部署一个基于若依二次开发的工具系统,在server01中部署前端静态资源,并配置nginx负载均衡到server01、server02的springboot应用上,server01、server02中的springboot应用将使用docker部署
二、前端部署和nginx配置
准备前端静态资源包
# 构建
npm run build:prod
将构建出来的静态文件压缩起来
把压缩包传输到server00的/home/tools/xiaoman-tools目录下并解压
# 解压压缩包
unzip xiaoman-tools-ui.zip
# 没有unzip的话需要安装
yum install unzip
配置nginx
cd /usr/local/nginx/conf/
vi nginx.conf
# 添加如下配置
# tools
upstream tools{
server 10.168.1.11:8080 weight=5;
server 10.168.1.12:8080 weight=5;
}
server {
listen 80;
server_name tools.xiaoman.online;
location / {
root /home/tools/xiaoman-tools-ui/;
index index.html index.htm;
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tools/;
}
# 重启nginx
/usr/local/nginx/sbin/nginx -s reload
配置frp
# 服务端配置
vi /usr/local/frp/frps.ini
# 添加如下配置
[nginx]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8080
# 配置nginx,需要把80端口转到8080
server {
listen 80;
server_name tools.xiaoman.online;
location / {
root html;
index index.html index.htm;
proxy_pass http://tools.xiaoman.online:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# 重启frps 重启nginx
systemctl restart frps.service
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 客户端配置
vi /usr/local/frp/frpc.ini
[nginx]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8080
# 重启frpc
systemctl restart frpc.service
三、后端部署
进入应用服务器(server_01,server_02)创建相关目录
mkdir /home/tools
mkdir /home/tools/app
mkdir /home/tools/data
mkdir /home/tools/logs
准备好部署的jar包和Dockerfile
dockerfile内容
# 基础镜像
FROM openjdk:8
# 设置工作目录
WORKDIR /app
# 将 Maven 相应的目录挂载到容器
VOLUME /opt/maven/apache-maven-3.6.3/:/opt/maven/apache-maven-3.6.3
# 挂载日志目录到容器
VOLUME /home/tools/logs:/home/tools/logs
# 拷贝应用jar包到工作目录
COPY ./xiaoman-tools.jar /app
# 暴露应用端口
EXPOSE 8080
# 指定容器启动命令,运行应用jar包,并且可以指定配置文件application-prod.yml启动
CMD ["java", "-jar", "xiaoman-tools.jar"]
把jar包和Dockerfile传到/home/tools/app下
# 构建镜像
docker build -t xiaoman-tools:latest .
# 启动容器 需要挂载日志到宿主机,且业务需求需要用到maven
docker run -d \
-e "SPRING_PROFILES_ACTIVE=prod"\
-p 8080:8080 \
-v /opt/maven/apache-maven-3.6.3/:/opt/maven/apache-maven-3.6.3/ \
-v /home/tools/logs:/home/tools/logs \
xiaoman-tools:latest
两台服务器(server01,server02)操作一致,部署成功~
五、最后
vue+springboot集群的部署并不难,但依然存在以下问题:
1.由于集群的关系,对于上传文件的需求,两个应用会把上传的文件上传到各自的服务器,会存在“找不到文件”的情况。 解决方案:统一把文件上传到nas服务器,对文件的读写均操作nas服务器。
2.两个应用的日志文件分别保存在两个服务器,排查问题时相对麻烦。 解决方案:部署日志采集工具,把不同服务器的日志收集起来进行分析。
本次记录到这里,下一次记录将具体解决以上存在的问题。
更多推荐
所有评论(0)