该系统采用分布式架构,使用四台Linux服务器来分离不同的功能模块,提高系统的性能、可靠性和可维护性。
详细请移步👉Linux之路
1、四台服务器?好处有哪些?
1.1 代理服务器(ivosproxy)
-
作为系统的入口点,处理所有的外部请求
-
提供负载均衡功能,可以在未来扩展多个后端服务器
-
处理静态文件请求,减轻后端服务器的压力
-
提供安全层,可以实施WAF(WEB应用防火墙)等安全措施
1.2 后端服务器(javaserver)
-
运行java应用,处理核心业务逻辑
-
与数据库交互,处理数据的增删改查
-
可以独立扩展,根据负载情况增加更多的实例
1.3 数据库服务器(database)
-
运行MySQL和Redis,存储所有的系统数据
-
数据库操作通常是I/O密集型的,单独的服务器可以提供更好的性能
-
便于数据备份和恢复操作
1.4 编译服务器(compile)
-
用于构建和打包应用,包括前端静态文件和JAR
-
将开发环境和生产环境分离,提高安全性
-
可以作为持续集成/持续部署(CI/CD)的一部分
理论上,这个系统可以使用一台就完成,但是不利于维护
2、如何配置?
2.1 数据库服务器(database)配置:
a. 安装MySQL:
dnf -y install mysql-server mysql
这条命令安装MySQL服务器和客户端。
b. 启动MySQL服务:
systemctl start mysqld systemctl enable mysqld
这些命令启动MySQL服务并设置为开机自启动。
c. 设置MySQL root密码:
mysqladmin -uroot password "123qqq...A"
这条命令为MySQL的root用户设置密码(没有密码时)。有密码则是下面的指令:
mysqladmin -uroot -p "旧密码" password "新密码"
d. 导入数据(进入sql):
mysql -uroot -p'123qqq...A' < /root/ivos.sql
这条命令使用ivos.sql文件恢复数据到MySQL。
e. 创建ivos用户:
CREATE USER ivos@'localhost' IDENTIFIED BY '123qqq...A'; CREATE USER ivos@'%' IDENTIFIED BY '123qqq...A'; GRANT ALL ON ivos.* TO ivos@'localhost'; GRANT ALL ON ivos.* TO ivos@'%'; FLUSH PRIVILEGES;
这些SQL命令创建了ivos用户并授予权限。创建ivos用户的原因是:
-
安全性:避免使用root用户直接访问数据库
-
权限控制:ivos用户只有ivos数据库的访问权限
-
便于管理:应用程序使用专门的用户访问数据库
2.2 编译服务器(compile)配置:
a. 安装Java和Maven:
dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven
这条命令安装Java开发环境和Maven构建工具。
b. 配置Maven镜像:
vim /etc/maven/settings.xml
编辑Maven配置文件,添加阿里云镜像以加速依赖下载。
c. 构建后端应用:
mvn clean package -Dmaven.test.skip=true
这条命令清理旧的构建文件,打包新的JAR文件,并跳过测试。
d. 传输JAR包到后端服务器:
scp target/ivos-0.0.1-SNAPSHOT.jar root@192.168.0.9:/root/
这条命令将编译好的JAR包传输到后端服务器。
e. 安装Node.js(用于前端构建):
tar -xf node-v14.10.0-linux-x64.tar.gz mv node-v14.10.0-linux-x64 /usr/local/node
这些命令解压并安装Node.js。
f. 构建前端应用:
npm install npm run build
这些命令安装依赖并构建前端应用。
g. 传输前端文件到代理服务器:
scp -r dist/ root@192.168.0.8:/usr/share/nginx/html
这条命令将构建好的前端文件传输到代理服务器。
2.3 后端服务器(javaserver)配置:
a. 创建必要的目录:
mkdir /ivosimg mkdir -p /opt/ivos/api mkdir -p /opt/ivos/log
这些命令创建存储图片、JAR包和日志的目录。
b. 启动Java应用:
nohup java -jar ivos-0.0.1-SNAPSHOT.jar &> ivos.log &
这条命令在后台运行Java应用,并将输出重定向到日志文件。
2.4 代理服务器(ivosproxy)配置:
a. 安装Nginx:
dnf -y install nginx
这条命令安装Nginx Web服务器。
b. 配置Nginx:
vim /etc/nginx/nginx.conf
编辑Nginx配置文件,设置静态文件路径和后端代理。
c. 启动Nginx:
systemctl start nginx systemctl enable nginx