OA办公系统 (系统源码不稳定)

机器配置

主机名 IP地址 系统配置 指令
nginx 192.168.8.10 1核CPU,1G内存 sethost 10 nginx
mycat 192.168.8.11 1核CPU,2G内存 sethost 11 mycat
dns 192.168.8.12 1核CPU,1G内存 sethost 12 dns
server1 192.168.8.20 1核CPU,1G内存 sethost 20 server1
server2 192.168.8.21 1核CPU,1G内存 sethost 21 server2
database1 192.168.8.30 1核CPU,2G内存 sethost 30 database1
database2 192.168.8.31 1核CPU,2G内存 sethost 31 database2

报错处理方法
9c2ecfeea0b61c95ee7f0f4fcc067581.png

1
2
3
4
5
6
7
8
9
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth1 //根据提示关闭指定ipv6
IPV6INIT=no
IPV6_AUTOCONF=no

nmcli con down eth0 && nmcli con up eth0
nmcli con down eth0 && nmcli con up eth1
or
reboot

server1

把资料中的apache-maven-3.6.3-bin.tar.gz、springboot-plus-master.tar.gz上传到server1机器上
解压apache-maven-3.6.3-bin.tar.gz

1
2
~]# tar -xf apache-maven-3.6.3-bin.tar.gz
~]# mv apache-maven-3.6.3 /usr/local/maven

安装jdk和驱动

1
~]# yum -y install java-devel java-1.8.0-openjdk

配置maven的环境变量

1
2
3
4
5
 ~]# vim /etc/bashrc
#在最后面配置如下内容
export MAVEN_HOME="/usr/local/maven"
export PATH=$MAVEN_HOME/bin:$PATH

刷新配置和验证maven是否安装成功

1
2
3
~]# source /etc/bashrc
~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

解压springboot-plus-master.tar.gz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 ~]# tar -xf springboot-plus-master.tar.gz
~]# cd springboot-plus-master/
]# ls -l
总用量 60
drwxr-xr-x. 3 root root 67 2月 26 21:20 admin-console #主应用程序
drwxr-xr-x. 3 root root 50 2月 23 21:37 admin-core #核心应用程序
-rw-r--r--. 1 root root 42 11月 22 2021 changelog.txt
-rw-r--r--. 1 root root 28125 11月 22 2021 dept.txt
drwxr-xr-x. 3 root root 130 11月 22 2021 doc #里面有我们需要的数据库数据文件
drwxr-xr-x. 2 root root 90 11月 22 2021 lib
-rw-r--r--. 1 root root 1485 11月 22 2021 LICENSE
-rw-r--r--. 1 root root 2168 11月 22 2021 pom.xml #依赖包配置文件
-rw-r--r--. 1 root root 14511 11月 22 2021 README.md
-rw-r--r--. 1 root root 642 11月 22 2021 sonar-project.properties

修改admin-console主应用程序的配置

1
2
3
4
5
6
7
8
vim admin-console/src/main/resources/application.properties
#1.修改点把127.0.0.1改成192.168.8.30
spring.datasource.baseDataSource.url=jdbc:mysql://192.168.8.30:3306/starter? useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&useSSL=false&useInformationSchema=true
spring.datasource.baseDataSource.username=admin
#修改为:admin
spring.datasource.baseDataSource.password=123456
#修改为:OA办公系统
app.name=OA办公系统

主机重启后需要执行命令才能正常访问
java -jar /root/springboot-plus-master/admin-console/target/admin-console-2.0.0.jar

部署database1

安装mysql数据库

1
2
~]# yum -y install mysql-server
~]# systemctl enable mysqld --now

server1执行命令 把server1中的sql数据传入到database1机器上

1
2
3
[root@server1 ~]# cd /root/springboot-plus-master/doc
doc]# scp starter-mysql.sql root@192.168.8.30:

database1执行命令 登录到mysql中,创建数据库,创建用户,授权

1
2
3
4
~]# mysql
mysql> create database starter;
mysql> create user admin@'%' identified by '123456';
mysql> grant all on starter.* to admin@'%';

导入数据

1
~]#  mysql starter < starter-mysql.sql

测试admin用户能否登录到数据库,能否操作starter的表

1
2
3
4
5
~]# mysql -u admin -p123456
mysql> use starter;
mysql> show tables;
mysql> select * from core_user;

编译打包项目和启动项目

回到server1机器上,修改maven加速镜像,在第158行下添加

1
2
3
4
5
6
7
8
]# vim /usr/local/maven/conf/settings.xml
//命令模式 :set number 显示行号
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

进入 springboot-plus-master目录,使用maven 编译打包

1
2
3
4
5
6
7
8
9
10
springboot-plus-master]# mvn clean package
...
[INFO] admin .............................................. SUCCESS [ 35.124 s]
[INFO] admin-core ......................................... SUCCESS [02:46 min]
[INFO] admin-console ...................................... SUCCESS [ 34.355 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:13 min
[INFO] Finished at: 2025-02-26T22:20:59-05:00

查看编译成功后的目录

1
2
3
4
5
6
springboot-plus-master]# ls admin-console/
pom.xml README.md src target
springboot-plus-master]# ls admin-console/target/
admin-console-2.0.0.jar admin-console-2.0.0-sources.jar generated-sources maven-status
admin-console-2.0.0.jar.original classes maven-archiver

启动admin-console-2.0.0.jar

1
2
3
4
]# java -jar admin-console/target/admin-console-2.0.0.jar
...
22675 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer start 220 - Tomcat started on port(s): 8080 (http) with context path ''
22728 [main] INFO com.ibeetl.admin.CosonleApplication logStarted 61 - Started CosonleApplication in 21.913 seconds (JVM running for 23.721)

通过浏览器访问
http://192.168.8.20:8080
506039b1a40116e051de3dc8a23a5964.png

部署nginx,反向代理访问

使用yum安装nginx
~]# yum -y install nginx
修改配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
~]# vim /etc/nginx/nginx.conf
#删除里面的server
~]# vim /etc/nginx/conf.d/oa.conf
upstream oa_server {
server 192.168.8.20:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://oa_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
~]# systemctl enable nginx.service --now

通过浏览器访问nginx的IP
d04a99411e1e2331f919d954f4483cbc.png

部署DNS服务器

安装dns相关软件包
[root@nds ~]# yum -y install bind bind-chroot
修改主配置文件

1
2
3
4
5
6
7
8
9
10
[root@nds ~]# vim  /etc/named.conf
#把默认的options块内容删除
options {
directory "/var/named"; #定义地址库文件存放路径
};
zone "oa.com" IN { #定义负责的解析qcjy.cn域名
type master; #权威主DNS服务器
file "oa.com.zone"; #地址库文件名称
};

建立地址库文件

1
2
3
4
5
6
[root@nds ~]# cd /var/named/
[root@nds named]# cp -p named.localhost oa.com.zone
[root@nds named]# vim oa.com.zone
NS server
server A 192.168.8.12
@ A 192.168.8.10

启动dns

1
2
systemctl start named
systemctl enable named

nginx配置修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@nginx nginx]# vim /etc/nginx/conf.d/oa.conf
upstream oa_server {
server 192.168.8.20:8080;
}
server {
listen 80;
server_name io.com; #修改点
location / {
proxy_pass http://oa_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

在windows中添加dns配置

03f3dc2adaf170cf824a1565e0e32393.png
通过域名访问
http://oa.com/
bc44f3bdc619b05c69033531b1d25077.png

部署database2

安装mysql数据库

1
2
~]# yum -y install mysql-server
~]# systemctl enable mysqld --now

把server1中的sql数据传入到database2机器上

1
doc]# scp starter-mysql.sql root@192.168.8.31:

登录到mysql中,创建数据库,创建用户,授权

1
2
3
4
~]# mysql
mysql> create database starter;
mysql> create user admin@'%' identified by '123456';
mysql> grant all on starter.* to admin@'%';

导入数据

1
~]#  mysql starter < starter-mysql.sql

测试admin用户能否登录到数据库,能否操作starter的表

1
2
3
4
~]# mysql -u admin -p123456
mysql> use starter;
mysql> show tables;
mysql> select * from core_user;

配置主从复制

database1作为主数据库,配置主数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@database1 ~]# vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id=30
[root@database01 ~]# systemctl restart mysqld
[root@database01 ~]# mysql
mysql> create user repluser@"%" identified by "123456";
mysql> grant replication slave on *.* to repluser@"%" ;
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 | 668 | | | |
+---------------+----------+--------------+------------------+-------------------+

database02作为从数据库,配置从数据库服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@database2 ~]# vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id=31
[root@database1 ~]# systemctl restart mysqld
[root@database1 ~]# mysql
mysql> change master to master_host="192.168.8.30" , master_user="repluser" , master_password="123456" , master_log_file="binlog.000002",master_log_pos=668;
mysql> start slave ;
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: 192.168.8.30
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 668
Relay_Log_File: database02-relay-bin.000002
Relay_Log_Pos: 323
Relay_Master_Log_File: binlog.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

部署mycat服务器

从资料中将mycat2-1.21-release-jar-with-dependencies.jar、mycat2-install-template-1.21.zip上传到mycat机器上
安装mycat软件

1
2
3
4
5
]# yum -y install java-1.8.0-openjdk.x86_64
]# unzip mycat2-install-template-1.21.zip
]# mv mycat /usr/local/
]# mv mycat2-1.21-release-jar-with-dependencies.jar /usr/local/mycat/lib/
]# chmod -R 777 /usr/local/mycat/

连接mycat服务使用用户及密码

1
2
3
4
5
6
7
8
[root@mycat ~]# cat /usr/local/mycat/conf/users/root.user.json
{
"dialect":"mysql",
"ip":null,
"password":"123456",
"transactionType":"proxy",
"username":"mycat"
}

定义连接的数据库服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@mycat ~]# vim /usr/local/mycat/conf/datasources/prototypeDs.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"123456",
"type":"JDBC",
"url":"jdbc:mysql://localhost:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"plj",
"weight":0
}

在mycat主机运行数据库服务

1
2
3
4
5
~]# yum -y  install  mysql-server
~]# systemctl start mysqld
~]# mysql
mysql> create user plj@"%" identified by "123456";
mysql> grant all on *.* to plj@"%" ;

启动mycat服务

1
2
3
4
5
6
7
~]# /usr/local/mycat/bin/mycat start
#半分钟左右 能看到端口
[root@mycat ~]# netstat -utnlp | grep 8066
tcp6 0 0 :::8066 :::* LISTEN 57015/java
#如果很长时间没有看到端口,可能是你机器配置比较低,那这时候可能是超时了,去修改一个配置文件
~]# vim /usr/local/mycat/conf/wrapper.conf
wrapper.startup.timeout=120 #增加这个配置

每次重启需要执行这个命令

1
/usr/local/mycat/bin/mycat start

连接mycat服务,配置读写分离

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
~]#  mysql -h127.0.0.1 -P8066 -umycat -p123456
mysql> show databases;
+--------------------+
| `Database` |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
#添加database01数据库服务器
MySQL> /*+ mycat:createdatasource{
"name":"whost30", "url":"jdbc:mysql://192.168.8.30:3306","user":"admin","password":"123456"}*/;
#添加database02数据库服务器
Mysql>/*+ mycat:createdatasource{
"name":"rhost31", "url":"jdbc:mysql://192.168.8.31:3306","user":"admin","password":"123456"}*/;
#查看数据源
mysql> /*+mycat:showDataSources{}*/ \G
#成功添加的数据源到安装目录下
[root@mycat ~]# ls /usr/local/mycat/conf/datasources/
prototypeDs.datasource.json rhost31.datasource.json whost30.datasource.json

创建集群,连接mycat服务后做如下配置

1
2
3
4
5
6
7
8
9
10
11
12
~]#  mysql -h127.0.0.1 -P8066 -umycat -p123456
#创建集群
mysql>/*!mycat:createcluster{
"name":"rwcluster",
"masters":["whost30"],
"replicas":["rhost31"]
}*/ ;
#查看集群信息
mysql> /*+ mycat:showClusters{}*/ \G
#创建的集群以文件的形式保存在目录下
[root@mycat ~]# ls /usr/local/mycat/conf/clusters/
prototype.cluster.json rwcluster.cluster.json

修改master角色主机仅负责写访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@mycat ~]# vim /usr/local/mycat/conf/datasources/whost30.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"WRITE", #修改点
"logAbandoned":true,
"maxCon":1000,
"maxConnectTimeout":30000,
"maxRetryCount":5,
"minCon":1,
"name":"whost30",
"password":"123456",
"queryTimeout":0,
"removeAbandoned":false,
"removeAbandonedTimeoutSecond":180,
"type":"JDBC",
"url":"jdbc:mysql://192.168.8.30:3306?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true",
"user":"admin",
"weight":0
}

修改slave角色主机仅负责读访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@mycat ~]# vim /usr/local/mycat/conf/datasources/rhost31.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"READ", #修改点
"logAbandoned":true,
"maxCon":1000,
"maxConnectTimeout":30000,
"maxRetryCount":5,
"minCon":1,
"name":"rhost31",
"password":"123456",
"queryTimeout":0,
"removeAbandoned":false,
"removeAbandonedTimeoutSecond":180,
"type":"JDBC",
"url":"jdbc:mysql://192.168.8.31:3306?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true",
"user":"admin",
"weight":0
}

集群配置修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@mycat ~]# vim /usr/local/mycat/conf/clusters/rwcluster.cluster.json
{
"clusterType":"MASTER_SLAVE",
"heartbeat":{
"heartbeatTimeout":1000,
"maxRetryCount":3,
"minSwitchTimeInterval":300,
"showLog":false,
"slaveThreshold":0.0
},
"masters":[
"whost30"
],
"maxCon":2000,
"name":"rwcluster",
"readBalanceType":"BALANCE_ALL_READ", #修改点
"replicas":[
"rhost31"
],
"switchType":"SWITCH"
}

~]# /usr/local/mycat/bin/mycat restart

指定starter数据库使用集群

1
2
3
4
5
6
7
8
9
10
11
12
[root@mycat ~]# vim /usr/local/mycat/conf/schemas/starter.schema.json
{
"customTables":{},
"globalTables":{},
"normalProcedures":{},
"normalTables":{},
"schemaName":"starter",
"targetName":"rwcluster",
"shardingTables":{},
"views":{}
}

重启mycat,并验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@mycat ~]# /usr/local/mycat/bin/mycat restart
[root@mycat ~]# ss -antlup | grep 8066
tcp LISTEN 0 2048 *:8066 *:* users:(("java",pid=27791,fd=73))
~]# mysql -h127.0.0.1 -P8066 -umycat -p123456
mysql> show databases;
+--------------------+
| `Database` |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| starter |
+--------------------+
4 rows in set (0.09 sec)

server01使用mycat连接数据库

修改为mycat的IP和端口,以及用户名

1
2
3
4
[root@server01 springboot-plus-master]# vim admin-console/src/main/resources/application.properties
spring.datasource.baseDataSource.url=jdbc:mysql://192.168.8.11:8066/starter?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&useSSL=false&useInformationSchema=true
spring.datasource.baseDataSource.username=mycat
spring.datasource.baseDataSource.password=123456

关闭jar进程,重新打包

1
2
3
[root@server1 ~]# jps
[root@server1 ~]# kill -9 4567
[root@server1 springboot-plus-master]# mvn clean package

068f273053f3c08a4b2294aab6f80d1e.png
运行

1
java -jar /root/springboot-plus-master/admin-console/target/admin-console-2.0.0.jar

浏览器访问
1c39d6f9d93f3c5d2af063ea6f2c501f.png

部署server2

server1上把admin-console-2.0.0.jar拷贝到server2

1
2
[root@server1 ~]# cd springboot-plus-master/admin-console/target/
[root@server1 target]# scp admin-console-2.0.0.jar root@192.168.8.21:

server2安装jdk

1
~]# yum -y install java-1.8.0-openjdk

运行admin-console-2.0.0.jar

1
[root@server2 ~]# java -jar admin-console-2.0.0.jar

浏览器访问
3ccd8fa54e6709dce14199e1524d3ac4.png

修改nginx配置,实现负载均衡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
~]# vim /etc/nginx/conf.d/oa.conf
upstream oa_server {
server 192.168.8.20:8080;
server 192.168.8.21:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://oa_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
~]# systemctl restart nginx.service

通过dns的域名访问
9ca7fb0064419a7a21b6499562b12a50.png


OA办公系统 (系统源码不稳定)
http://example.com/2025/05/28/97a5cd5f8cae4e20aa2ad25899e3e1e0/
作者
John Doe
发布于
2025年5月28日
许可协议