中山数字档案馆系统部署与配置实操全流程

一、基础环境准备与依赖安装

在开始部署中山数字档案馆系统之前,必须确保服务器环境满足运行要求。本指南基于CentOS 7.x/8.x操作系统编写,涵盖从零开始的完整部署流程。

执行以下命令更新系统内核并安装必要的开发工具包:

yum update -y
yum install -y vim wget git curl net-tools lsof

接下来,安装Docker及Docker Compose。这是系统运行的核心容器环境。执行以下脚本一键安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker

配置Docker Compose。由于官方下载速度较慢,我们直接下载编译好的二进制文件:

curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

为了防止容器日志占用过多磁盘空间,需配置Docker守护进程。创建或编辑/etc/docker/daemon.json文件:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}

执行systemctl restart docker使配置生效。

二、目录结构与编排文件创建

/opt目录下创建项目专属目录,用于存放所有配置文件和数据卷:

mkdir -p /opt/zhongshan-archives/{mysql,redis,minio,app,nginx/{conf,html,logs}}
cd /opt/zhongshan-archives

在项目根目录下创建docker-compose.yml文件。该文件将定义MySQL、Redis、MinIO以及应用服务的运行环境。请确保复制以下完整内容,不要遗漏任何配置项:

version: '3.8'
services:
MySQL数据库服务
mysql:
image: mysql:5.7
container_name: zs_archives_mysql
environment:
MYSQL_ROOT_PASSWORD: Zhongshan@Archives2024
TZ: Asia/Shanghai
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- "3306:3306"
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
networks:
- zs_net
Redis缓存服务
redis:
image: redis:6.2-alpine
container_name: zs_archives_redis
command: redis-server --requirepass "Redis@Zs2024" --appendonly yes
volumes:
- ./redis/data:/data
ports:
- "6379:6379"
networks:
- zs_net
MinIO对象存储服务(用于存储档案文件)
minio:
image: minio/minio:latest
container_name: zs_archives_minio
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: Minio@Zs2024
volumes:
- ./minio/data:/data
ports:
- "9000:9000"
- "9001:9001"
command: server /data --console-address ":9001"
networks:
- zs_net
networks:
zs_net:
driver: bridge

三、数据库初始化与配置

为了确保数据库字符集正确,需创建自定义配置文件。编辑./mysql/conf/my.cnf

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-storage-engine=INNODB
max_connections=1000
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

启动基础中间件服务:

docker-compose up -d mysql redis minio

等待约30秒,待MySQL完全启动后,我们需要初始化数据库。将系统提供的SQL脚本(假设文件名为init_schema.sql)上传至/opt/zhongshan-archives/mysql目录。如果没有现成脚本,可手动创建数据库:

docker exec -i zs_archives_mysql mysql -uroot -pZhongshan@Archives2024 -e "CREATE DATABASE IF NOT EXISTS zhongshan_archives DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

如果存在初始化脚本,请执行以下命令导入数据:

中山数字档案馆系统部署与配置实操全流程

docker exec -i zs_archives_mysql mysql -uroot -pZhongshan@Archives2024 zhongshan_archives < /opt/zhongshan-archives/mysql/init_schema.sql

四、后端应用服务配置与启动

假设后端程序为Spring Boot打包的JAR文件。将zhongshan-archives.jar上传至/opt/zhongshan-archives/app目录。

在同级目录下创建application.yml配置文件。这是连接数据库、Redis和文件存储的关键配置,请务必修改其中的账号密码与上文保持一致:

server:
port: 8080
spring:
datasource:
url: jdbc:mysql://zs_archives_mysql:3306/zhongshan_archives?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: Zhongshan@Archives2024
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
host: zs_archives_redis
port: 6379
password: Redis@Zs2024
database: 0
timeout: 3000
文件存储配置
minio:
endpoint: http://zs_archives_minio:9000
accessKey: admin
secretKey: Minio@Zs2024
bucketName: archives-files

为了方便管理,我们将后端服务也加入Docker Compose管理。在docker-compose.yml末尾追加以下内容:

   后端应用服务
backend:
image: openjdk:8-jre-alpine
container_name: zs_archives_backend
volumes:
- ./app/zhongshan-archives.jar:/app.jar
- ./app/application.yml:/config/application.yml
working_dir: /app
command: java -Djava.security.egd=file:/dev/./urandom -Dspring.config.location=/config/application.yml -jar /app.jar
ports:
- "8080:8080"
depends_on:
- mysql
- redis
- minio
networks:
- zs_net

执行命令启动后端服务:

docker-compose up -d backend
docker-compose logs -f backend

观察日志输出,当出现Started ZhongshanArchivesApplication in X seconds字样时,表示后端启动成功。

五、前端Nginx反向代理配置

将前端打包好的dist目录下的所有文件上传至/opt/zhongshan-archives/nginx/html

编辑Nginx配置文件./nginx/conf/nginx.conf。此配置实现了静态资源访问及API接口的跨域转发:

user  nginx;
worker_processes  1;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  localhost;
前端静态资源
location / {
root   /usr/share/nginx/html;
index  index.html index.htm;
try_files $uri $uri/ /index.html;
}
后端接口代理
location /api/ {
proxy_pass http://zs_archives_backend:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
文件预览代理(直连MinIO)
location /files/ {
proxy_pass http://zs_archives_minio:9000/;
}
}
}

同样将Nginx加入编排管理。在docker-compose.yml末尾追加:

   前端Nginx服务
frontend:
image: nginx:alpine
container_name: zs_archives_nginx
volumes:
- ./nginx/html:/usr/share/nginx/html
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
ports:
- "80:80"
depends_on:
- backend
networks:
- zs_net

启动Nginx服务:

docker-compose up -d frontend

六、MinIO存储桶初始化与验证

系统运行需要指定的存储桶。我们可以通过MinIO客户端或直接访问控制台创建。访问http://服务器IP:9001,使用admin/Minio@Zs2024登录。

登录后,点击左侧菜单“Buckets”,点击“Create Bucket”,输入名称archives-files,点击创建。创建成功后,需设置该Bucket的Access Policy为Public或根据业务需求设置为Private。如果是Private,请确保后端代码中已正确配置Presigned URL逻辑。

为了确保服务重启后配置不丢失,建议检查所有挂载目录。执行docker-compose ps,所有服务状态应为Up

在浏览器中访问http://服务器IP。如果能看到中山数字档案馆系统的登录页面,且静态资源加载正常,说明部署成功。尝试输入账号密码登录,若能请求后端接口并返回数据,则表示全链路打通。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统