Docker部署后端及配置集群

1、后端项目打包

1
mvn clean install -Dmaven.test.skip=true

2、安装java镜像

1
docker pull openjdk

3、创建并启动java容器

1
2
3
4
5
6
7
8
9
10
11
#创建数据卷,上传JAR文件
docker volume create j1
#启动容器
docker run -it -d --name j1 -v j1:/home/soft --net=host openjdk
#进入j1容器
docker exec -it j1 bash
#启动Java项目
nohup java -jar /home/soft/你的jar包名字.jar >> home/soft/java.log 2>&1 &
#查看日志
tail -100f /home/soft/java.log

image-20240412135754999

1
2
3
4
5
6
7
8
9
10
11
12
13
#同理部署两个后端节点,记得修改好配置文件端口号
docker volume create j2
docker run -it -d --name j2 -v j2:/home/soft --net=host openjdk
docker exec -it j2 bash
nohup java -jar /home/soft/你的jar包名字.jar >> home/soft/java.log 2>&1 &
tail -100f /home/soft/java.log

docker volume create j3
docker run -it -d --name j3 -v j3:/home/soft --net=host openjdk
docker exec -it j3 bash
nohup java -jar /home/soft/你的jar包名字.jar >> home/soft/java.log 2>&1 &
tail -100f /home/soft/java.log

4、安装nginx镜像

1
docker pull nginx:1.25.1

5、对应目录创建nginx配置文件

image-20240412193546678

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
user  nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 3072m;
client_body_buffer_size 128k;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

upstream tomcat {
server 你的ip:8081;
server 你的ip:8082;
server 你的ip:8083;
}
server {
listen 8888;
server_name 你的ip;
location / {
proxy_pass http://tomcat;
index index.html index.htm;
}
}
}

指的是前端请求后端8888端口(根据自己的需求修改端口号),nginx根据负载均衡策略转发给8081、8082、8083(根据自己的需求修改端口号)

6、创建并启动nginx容器

1
docker run -it -d --name n1 -v /home/n1/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx:1.25.1

7、整体结构

image-20240412195054467

8、检查

检查云服务器端口开放情况

检查java.log日志运行情况