公共安全技术研究中心网站
 
 
 
 
 
Go to file
认知智能 d3f4102096 更新 readme.md 2025-03-18 10:39:42 +08:00
nacos_config/DKHA_CLOUD_GROUP code commit 2025-03-10 18:20:42 +08:00
portal_client fisrt commit 2025-03-10 17:41:02 +08:00
portal_server fisrt commit 2025-03-10 17:41:02 +08:00
potal_admin fisrt commit 2025-03-10 17:41:02 +08:00
sql code commit 2025-03-10 18:25:46 +08:00
up-portal Add img file 2025-03-10 18:10:04 +08:00
readme.md 更新 readme.md 2025-03-18 10:39:42 +08:00

readme.md

UP-Portal 系统部署指南

作者:阮友翔、陈斌

目录


项目结构

portal_client/       # 网站前端
portal_admin/        # 网站管理端
portal_server/       # 后端服务
nacos_config/        # Nacos 配置文件
sql/                 # 数据库脚本
up-portal/           # 图片资源

部署步骤

一、Nginx 部署

1. 安装依赖

apt install -y gcc make libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

2. 编译安装

tar -xzvf nginx-x.x.x.tar.gz
cd nginx-x.x.x
./configure
make
make install

3. 配置系统服务

创建文件 /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

4. 启动服务

systemctl daemon-reload
systemctl enable nginx
systemctl start nginx

二、前端部署

1. 打包前端

npm run build:prod

2. Nginx 配置

编辑 /usr/local/nginx/conf/nginx.conf

# 客户端80端口
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /path/to/up-portal-1.0.1;
        index  index.html;
        try_files $uri $uri/ /index.html;
    }

    location /portal/ {
        proxy_pass http://localhost:9080;
    }

    location /files {
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:9000/up-portal;
    }
}

# 管理端8080端口
server {
    listen 8080;
    server_name localhost;

    location / {
        root   /path/to/up-portal-admin-1.0.1;
        index  index.html;
        try_files $uri $uri/ /index.html;
    }

    location /files {
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:9000/up-portal;
    }
}

三、服务器环境部署

1. 安装 JDK

tar -xzvf jdk-x.x.x_linux-x64_bin.tar.gz -C /opt
# 配置环境变量,并使其生效。
vim /etc/profile
... 
echo 'export JAVA_HOME=/opt/jdk-x.x.x
export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile

2. 安装 MySQL

apt install -y mysql-server

# 查看mysql内置用户和密码

cat /etc/mysql/debian.cnf 
... 
user = debian-sys-maint 
password = HzIAVrYXdjwUndPe 
...

# 设置root用户的密码 配置远程访问
mysql -udebian-sys-maint -p
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456'; 
mysql> use mysql; # 使用模式mysql 
mysql> update user set host = '%' where user = 'root';
mysql> exit;


# 修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf 
... 
# bind-address = 127.0.0.1 # 或将 127.0.0.1 改为 0.0.0.0 
...
# 重新启动服务
service mysql restart


#### 3. 安装 Redis
```bash
#安装Redis
apt install -y redis-server

# 修改配置
vim /etc/redis/redis.conf 
... 
# bind 127.0.0.1 
# protected-mode yes 
requirepass foobared 
...

#重新启动redis
redis-cli shutdown 
redis-server /etc/redis/redis.conf



4. 安装 RabbitMQ

# 使用apt命令安装RabbitMQ但需要Erlang语言的支持
apt install -y erlang-nox
apt install -y rabbitmq-server
# 默认guest用户不能进行远程登录添加admin用户并赋予administrator权限。
rabbitmqctl add_user admin admin 
rabbitmqctl set_user_tags admin administrator 
rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
# 启动RabbitMQ Web管理工具。
cd /etc/rabbitmq 
rabbitmq-plugins enable rabbitmq_management




四、Nacos 部署

1. 安装配置

tar -xzvf nacos-server-x.x.x.tar.gz -C /opt

#修改配置文件
cd /opt/nacos 
vim bin/startup.sh 
... 
# [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java 
# [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java 
# [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java 
# [ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME 
JAVA_HOME=/opt/jdk-x.x.x 
...

# 配置数据库
vim /opt/nacos/conf/application.properties

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos? 
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true 
&useUnicode=true&useSSL=false&serverTimezone=UTC 
db.user.0=nacos 
db.password.0=nacos 

2. 将nacos配置为系统服务并且设置开机自启动

创建 /lib/systemd/system/nacos.service

[Unit]
Description=nacos 
After=network.target 


[Service]
Type=forking 
ExecStart=/opt/nacos/bin/startup.sh -m standalone 
ExecReload=/opt/nacos/bin/shutdown.sh 
ExecStop=/opt/nacos/bin/shutdown.sh 
PrivateTmp=true 
[Install] 
WantedBy=multi-user.target

3.重新加载系统服务启用nacos服务并开启。

systemctl daemon-reload
systemctl enable nacos.service
systemctl start nacos.service


五、Minio 部署

1. 安装与启动

#在/opt目录可自定义下创建目录minio及其子目录bin、conf、data、logs、target下载minio至target目录中并为其添加可执行权限。
cd /opt 
mkdir minio 
cd ./minio 
mkdir bin conf data logs target
cd target
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio


# 启动脚本
$ vim bin/startup.sh 
#!/bin/bash
export BASE_DIR=`cd $(dirname $0)/..; pwd`
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
if [ ! -d "${BASE_DIR}/conf" ]; then
        mkdir ${BASE_DIR}/conf
fi
if [ ! -d "${BASE_DIR}/data" ]; then
        mkdir ${BASE_DIR}/data
fi
if [ ! -d "${BASE_DIR}/logs" ]; then
        mkdir ${BASE_DIR}/logs
fi
nohup /opt/minio/target/minio server  --address :9000 --console-address :19678 /home/cb/miniodata > /opt/minio/logs/miniostart.log &
echo "minio is starting, you can check the ${BASE_DIR}/logs/start.out" 
$ chmod u+x bin/startup.sh

# 停止脚本
$ vim bin/shutdown.sh 
!/bin/bash 
target_dir=`cd $(dirname $0)/../target; pwd` 
pid=`ps ax | grep ${target_dir} | grep -v grep | awk '{print $1}'` 
if [ -z "$pid" ] ; then 
echo "No minio server is running." 
exit -1; 
fi
kill ${pid} 
echo "Send shutdown request to minio server OK." 
$ chmod u+x bin/shutdown.sh

# 将minio配置为系统服务并且设置开机自启动
$ cd /lib/systemd/system 
$ vim minio.service 
[Unit] 
Description=minio 
After=network.target 
[Service] 
Type=forking 
ExecStart=/opt/minio/bin/startup.sh 
ExecReload=/opt/minio/bin/shutdown.sh 
ExecStop=/opt/minio/bin/shutdown.sh 
PrivateTmp=true 
[Install] 
WantedBy=multi-user.target

# 重新加载系统服务启用minio服务并开启。
$ systemctl daemon-reload 
$ systemctl enable minio.service
$ systemctl start minio.service


六、服务端部署

1. 目录准备

mkdir -p /opt/dkha/{bin,conf,data,logs,target}

2. 代码打包上传

#执行maven的打包命令将生成的jar包上传至target目录包括school-dkha-admin-server.jar、school-dkha-auth.jar、school-dkha-gateway.jar、school-dkha-portal-server.jar为上述jar包添加可执行权限。
$ mvn package
$ chmod u+x target/*


3. 启动脚本

创建 /opt/dkha/bin/startup.sh

#!/bin/bash
error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}
if [ -z "$JAVA_HOME" ]; then
    error_exit "Please set the JAVA_HOME variable in your environment, we need java(x64)! jdk8 or later is better!"	
fi
export BASE_DIR=`cd $(dirname $0)/..; pwd`
if [ ! -d "${BASE_DIR}/logs" ]; then
    mkdir ${BASE_DIR}/logs
fi
for SERVICE in `cd $BASE_DIR/target; ls`; do
    SERVICE_NAME=${SERVICE%\.*}
    echo "Service ${SERVICE_NAME} is starting..."
    nohup java -Dspring.profiles.active=prod -jar ${BASE_DIR}/target/${SERVICE} > ${BASE_DIR}/logs/${SERVICE_NAME}.out 2>&1 &
done
echo "UP-portal server startup successfully!"
$ chmod u+x bin/startup.sh

#注释若运行脚本无效则可在目录下单独运行所有jar包 
nohup java -jar school-dkha-portal-server.jar --spring.profiles.active=prod &

4. 停止脚本

$ vim bin/shutdown.sh
#!/bin/bash
target_dir=`cd $(dirname $0)/../target; pwd`
pid=`ps ax | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'`
if [ -z "$pid" ] ; then
    echo "No UP-portal server is running."
    exit -1;
fi
kill ${pid}
echo "Send shutdown request to UP-portal server OK."
$ chmod u+x bin/shutdown.sh



注意事项

  1. 路径调整:所有 /opt/ 下的路径需根据实际部署位置修改
  2. 安全配置
    • MySQL 密码 123456、Redis 密码 your_password 等需替换为强密码
    • Minio 的 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 需修改
  3. 端口冲突:检查 9000Minio9080(服务端)等端口是否被占用
  4. 日志监控:定期查看 /opt/dkha/logs//opt/minio/logs/ 下的日志文件