From 5b0371034b57e336303304aca80857100b027573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=A4=E7=9F=A5=E6=99=BA=E8=83=BD?= <2386089024@qq.com> Date: Mon, 10 Mar 2025 19:12:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20readme.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 401 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 401 insertions(+) create mode 100644 readme.md diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..31c536d --- /dev/null +++ b/readme.md @@ -0,0 +1,401 @@ +# UP-Portal 系统部署指南 + +## 目录 +- [项目结构](#项目结构) +- [部署步骤](#部署步骤) + - [Nginx 部署](#一nginx-部署) + - [前端部署](#二前端部署) + - [服务器环境](#三服务器环境部署) + - [Nacos 部署](#四nacos-部署) + - [Minio 部署](#五minio-部署) + - [服务端部署](#六服务端部署) +- [注意事项](#注意事项) + +--- + +## 项目结构 +``` +portal_client/ # 网站前端 +portal_admin/ # 网站管理端 +portal_server/ # 后端服务 +nacos_config/ # Nacos 配置文件 +sql/ # 数据库脚本 +up-portal/ # 图片资源 +``` + +--- + +## 部署步骤 + +### 一、Nginx 部署 + +#### 1. 安装依赖 +```bash +apt install -y gcc make libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev +``` + +#### 2. 编译安装 +```bash +tar -xzvf nginx-x.x.x.tar.gz +cd nginx-x.x.x +./configure +make +make install +``` + +#### 3. 配置系统服务 +创建文件 `/lib/systemd/system/nginx.service`: +```ini +[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. 启动服务 +```bash +systemctl daemon-reload +systemctl enable nginx +systemctl start nginx +``` + +--- + +### 二、前端部署 + +#### 1. 打包前端 +```bash +npm run build:prod +``` + +#### 2. Nginx 配置 +编辑 `/usr/local/nginx/conf/nginx.conf`: +```nginx +# 客户端(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 +```bash +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 +```bash +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 +```bash +# 使用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. 安装配置 +```bash +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 + +``` +```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`: +```ini +[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服务并开启。 +```bash +systemctl daemon-reload +systemctl enable nacos.service +systemctl start nacos.service + +``` +--- + +### 五、Minio 部署 + +#### 1. 安装与启动 +```bash +#在/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. 目录准备 +```bash +mkdir -p /opt/dkha/{bin,conf,data,logs,target} +``` +#### 2. 代码打包上传 +```bash +#执行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`: +```bash +#!/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. 停止脚本 +```bash +$ 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_USER` 和 `MINIO_ROOT_PASSWORD` 需修改 +3. ​**端口冲突**:检查 `9000`(Minio)、`9080`(服务端)等端口是否被占用 +4. ​**日志监控**:定期查看 `/opt/dkha/logs/` 和 `/opt/minio/logs/` 下的日志文件 \ No newline at end of file