reghao 1 year ago
parent
commit
de3ef7c23b
10 changed files with 320 additions and 67 deletions
  1. 13 1
      README.md
  2. 38 16
      build.sh
  3. 23 0
      config/application.yml
  4. BIN
      config/deployer.jar
  5. 4 0
      config/hosts
  6. 60 0
      db/init_db.sh
  7. 0 47
      deploy.md
  8. 124 0
      nginx/conf.d/tnb.conf
  9. 55 0
      nginx/nginx.conf
  10. 3 3
      start.sh

+ 13 - 1
README.md

@@ -1,6 +1,8 @@
+## 系统简介
+
 ## 构建依赖
 ## 构建依赖
 - os:Linux
 - os:Linux
-> Windows 系统理论上可以运行, 但尚未实践
+> Windows 尚未实践
 - jdk:11
 - jdk:11
 - maven:3.9
 - maven:3.9
 - node:v16.19.0
 - node:v16.19.0
@@ -12,3 +14,13 @@
 - rabbitmq
 - rabbitmq
 - zookeeper:3.4
 - zookeeper:3.4
 - mongodb:4.4
 - mongodb:4.4
+
+## 构建部署
+构建部署流程如下:
+- 1.修改 config/application.yml 文件中第三方服务的地址和帐号密码等
+- 2.修改 tnb0/db/init_db.sh 脚本中 MySQL 的地址和帐号密码, 然后在 tnb0/db 目录下执行 init_db.sh 脚本初始化数据库
+- 3.在 tnb0 目录下执行 build.sh 脚本构建应用
+- 4.构建成功后, 在 tnb0 目录下执行 start.sh 脚本启动应用
+- 5.在 tnb0 目录下执行 shutdown.sh 脚本可停止应用
+
+### oss-store 应用

+ 38 - 16
build.sh

@@ -2,21 +2,26 @@
 
 
 set -e
 set -e
 
 
-env='dev'
+env='test'
 base_dir=`pwd`
 base_dir=`pwd`
-proj_dir="${base_dir}/proj"
-bin_dir="${base_dir}/bin"
-
-# if [ -d ${proj_dir} ]; then
-#     rm -rf ${proj_dir}
-# fi
-
-# if [ -d ${bin_dir} ]; then
-#     rm -rf ${bin_dir}
-# fi
-
-mkdir ${proj_dir}
-mkdir ${bin_dir}
+config_dir="${base_dir}/config"
+proj_dir="${base_dir}/build/proj"
+bin_dir="${base_dir}/build/bin"
+
+echo "创建 proj 目录和 bin 目录..."
+if [ -d ${proj_dir} ]; then
+    echo ${proj_dir}" exist"
+    # rm -rf ${proj_dir}
+else
+    mkdir -p ${proj_dir}
+fi
+
+if [ -d ${bin_dir} ]; then
+    echo ${bin_dir}" exist"
+    # rm -rf ${bin_dir}
+else
+    mkdir -p ${bin_dir}
+fi
 
 
 ###############################################################################
 ###############################################################################
 # clone 项目
 # clone 项目
@@ -61,6 +66,14 @@ build_dependencies() {
     mvn clean install -Dmaven.test.skip -pl admin-api
     mvn clean install -Dmaven.test.skip -pl admin-api
 }
 }
 
 
+###############################################################################
+# 修改第三方服务依赖配置
+###############################################################################
+replace_server_config() {
+    cd ${config_dir}
+    java -jar deployer.jar application.yml ${proj_dir}
+}
+
 ###############################################################################
 ###############################################################################
 # 构建应用
 # 构建应用
 ###############################################################################
 ###############################################################################
@@ -70,7 +83,10 @@ build_app() {
     ###############################################################################
     ###############################################################################
     cd ${proj_dir}/oss
     cd ${proj_dir}/oss
     mvn clean package -Dmaven.test.skip -pl oss-store -P${env}
     mvn clean package -Dmaven.test.skip -pl oss-store -P${env}
-    mkdir ${bin_dir}/oss-store
+    
+    if [ ! -d ${bin_dir}/oss-store ]; then
+        mkdir ${bin_dir}/oss-store
+    fi
     cp oss-store/bin/* ${bin_dir}/oss-store
     cp oss-store/bin/* ${bin_dir}/oss-store
 
 
     ###############################################################################
     ###############################################################################
@@ -99,13 +115,19 @@ build_app() {
     cd ${proj_dir}/tnbapp
     cd ${proj_dir}/tnbapp
     npm --registry http://registry.npm.taobao.org i
     npm --registry http://registry.npm.taobao.org i
     npm run build
     npm run build
-    mkdir ${bin_dir}/tnbapp
+
+    if [ ! -d ${bin_dir}/tnbapp ]; then
+        mkdir ${bin_dir}/tnbapp
+    fi
     cp -r dist/* ${bin_dir}/tnbapp
     cp -r dist/* ${bin_dir}/tnbapp
 }
 }
 
 
 echo "clone 项目..."
 echo "clone 项目..."
 clone_proj
 clone_proj
 
 
+echo "修改第三方服务依赖配置..."
+replace_server_config
+
 echo "构建依赖..."
 echo "构建依赖..."
 build_dependencies
 build_dependencies
 
 

+ 23 - 0
config/application.yml

@@ -0,0 +1,23 @@
+zookeeper:
+  host: 192.168.0.180
+  port: 2181
+mongodb:
+  host: 192.168.0.180
+  port: 27017
+  authentication-database: admin
+  username: test
+  password: Test@123456
+redis:
+  host: 192.168.0.180
+  port: 6379
+  password: Test@123456
+rabbitmq:
+  host: 192.168.0.180
+  port: 5672
+  username: test
+  password: Test@123456
+mysql:
+  host: 192.168.0.180
+  port: 3306
+  username: test
+  password: Test@123456

BIN
config/deployer.jar


+ 4 - 0
config/hosts

@@ -0,0 +1,4 @@
+127.0.0.1 oss.reghao.cn
+127.0.0.1 api.reghao.cn
+127.0.0.1 tnb.reghao.cn
+127.0.0.1 bnt.reghao.cn

+ 60 - 0
db/init_db.sh

@@ -0,0 +1,60 @@
+#!/bin/bash
+
+###############################################################################
+# shell 脚本中执行 sql 语句
+###############################################################################
+
+host='192.168.0.180'
+username='test'
+password='Test@123456'
+
+db1='tnb_account_tdb'
+db2='tnb_content_tdb'
+db3='reghao_bnt_tdb'
+db4='reghao_oss_tdb'
+
+sql1="CREATE DATABASE IF NOT EXISTS ${db1} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+sql2="CREATE DATABASE IF NOT EXISTS ${db2} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+sql3="CREATE DATABASE IF NOT EXISTS ${db3} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+sql4="CREATE DATABASE IF NOT EXISTS ${db4} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+
+mysql -h${host} -u${username} -p${password} << EOF
+${sql1}
+${sql2}
+${sql3}
+${sql4}
+EOF
+
+base_dir=`pwd`
+cd ${base_dir}/schema
+
+db11='tnb_account_tdb'
+db21='tnb_content_tdb'
+db31='reghao_bnt_tdb'
+db41='reghao_oss_tdb'
+
+# 还原整个数据库结构(不包含数据)
+mysql -h${host} -u${username} -p${password} ${db11} < ${db1}.sql
+mysql -h${host} -u${username} -p${password} ${db21} < ${db2}.sql
+mysql -h${host} -u${username} -p${password} ${db31} < ${db3}.sql
+mysql -h${host} -u${username} -p${password} ${db41} < ${db4}.sql
+
+# 还原表数据到数据库
+mysql -h${host} -u${username} -p${password} ${db11} < msg_email_account.sql
+mysql -h${host} -u${username} -p${password} ${db11} < user_registry.sql
+mysql -h${host} -u${username} -p${password} ${db11} < user_vip_plan.sql
+
+mysql -h${host} -u${username} -p${password} ${db21} < file_store_config.sql
+mysql -h${host} -u${username} -p${password} ${db21} < vod_video_category.sql
+
+mysql -h${host} -u${username} -p${password} ${db31} < oss_store_node.sql
+mysql -h${host} -u${username} -p${password} ${db31} < oss_store_volumes.sql
+mysql -h${host} -u${username} -p${password} ${db31} < oss_upload_channel.sql
+mysql -h${host} -u${username} -p${password} ${db31} < oss_user_key.sql
+mysql -h${host} -u${username} -p${password} ${db31} < oss_user_node.sql
+mysql -h${host} -u${username} -p${password} ${db31} < sys_menu.sql
+mysql -h${host} -u${username} -p${password} ${db31} < sys_role.sql
+mysql -h${host} -u${username} -p${password} ${db31} < sys_role_menu.sql
+mysql -h${host} -u${username} -p${password} ${db31} < sys_user.sql
+
+mysql -h${host} -u${username} -p${password} ${db41} < file_meta.sql

+ 0 - 47
deploy.md

@@ -1,47 +0,0 @@
-redis
-```
-host: 192.168.0.11
-port: 6379
-password: 123456
-```
-
-mysql
-```
-host: 192.168.0.11
-port: 3306
-username: test
-password: 123456
-```
-
-mongodb
-```
-host: 192.168.0.11
-port: 27017
-username: test
-password: 123456
-authentication-database: admin
-```
-
-elasticsearch
-```
-host: 127.0.0.1
-port: 9200
-username: elastic
-password: 123456
-```
-
-rabbitmq
-```
-host: 192.168.0.11
-port: 5672
-username: test
-password: 123456
-```
-
-zookeeper
-```
-host: 192.168.0.11
-port: 2181
-
-zookeeper://192.168.0.11:2181
-```

+ 124 - 0
nginx/conf.d/tnb.conf

@@ -0,0 +1,124 @@
+################################################################################
+# bnt.reghao.cn
+################################################################################
+server {
+   listen 80;
+   server_name bnt.reghao.cn;
+   access_log off;
+
+   location / {
+      proxy_set_header HOST $host;
+      proxy_set_header X-Real-IP $remote_addr;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header X-Forwarded-Proto $scheme;
+
+      proxy_pass http://127.0.0.1:4030;
+   }
+   location /ws {
+      proxy_set_header Upgrade $http_upgrade;
+      proxy_set_header Connection $connection_upgrade;
+      proxy_cache off;
+      proxy_http_version 1.1;
+      proxy_buffering off;
+      proxy_read_timeout 100s;
+      proxy_set_header Host $host;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header X-Forwarded-Proto $scheme;
+
+      proxy_pass http://127.0.0.1:4030;
+   }
+}
+
+################################################################################
+# oss.reghao.cn
+################################################################################
+server {
+   listen 80;
+   server_name oss.reghao.cn;
+   access_log off;
+
+   location / {
+      proxy_set_header HOST $host;
+      proxy_set_header X-Real-IP $remote_addr;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header X-Forwarded-Proto $scheme;
+
+      proxy_pass http://127.0.0.1:4010;
+   }
+}
+
+################################################################################
+# api.reghao.cn
+################################################################################
+server {
+   listen 80;
+   server_name api.reghao.cn;
+   access_log off;
+
+   location / {
+      proxy_set_header HOST $host;
+      proxy_set_header X-Real-IP $remote_addr;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header X-Forwarded-Proto $scheme;
+      proxy_send_timeout 600;
+      proxy_read_timeout 600;
+      proxy_connect_timeout 600;
+
+      proxy_pass http://127.0.0.1:6000;
+   }
+   location /api/data/video/hot {
+      proxy_http_version 1.1;
+      proxy_set_header Connection "";
+      proxy_set_header X-Real-IP $remote_addr;
+      proxy_set_header Host $host;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_read_timeout 86400s;
+      proxy_buffering off;
+      proxy_cache off;
+
+      proxy_pass http://127.0.0.1:6000;
+   }
+   location /ws {
+      proxy_set_header Upgrade $http_upgrade;
+      proxy_set_header Connection $connection_upgrade;
+      proxy_cache off;
+      proxy_http_version 1.1;
+      proxy_buffering off;
+      proxy_read_timeout 100s;
+      proxy_set_header Host $host;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header X-Forwarded-Proto $scheme;
+
+      proxy_pass http://127.0.0.1:6000;
+   }
+}
+
+################################################################################
+# tnb.reghao.cn
+################################################################################
+server {
+   listen 80;
+   server_name tnb.reghao.cn;
+   access_log off;
+
+   root /opt/webroot/tnbapp;
+   location / {
+      try_files $uri $uri/ /index.html;
+   }
+}
+
+
+# server {
+#    listen 80;
+#    server_name tnb1.reghao.cn;
+#    access_log off;
+
+#    location / {
+#       proxy_set_header HOST $host;
+#       proxy_set_header X-Real-IP $remote_addr;
+#       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+#       proxy_set_header X-Forwarded-Proto $scheme;
+
+#       proxy_pass http://127.0.0.1:8000;
+#    }
+# }

+ 55 - 0
nginx/nginx.conf

@@ -0,0 +1,55 @@
+user root root;
+worker_processes 1;
+worker_rlimit_nofile 20000;
+error_log  /var/log/nginx/error.log  notice;
+
+events {
+    use epoll;
+    worker_connections 20000;
+    multi_accept on;
+}
+
+http {
+    include mime.types;
+    default_type application/octet-stream;
+    
+    log_format main
+	    	 '{"time_iso8601":"$time_iso8601",'
+                 '"remote_addr":"$remote_addr",'
+                 '"request":"$request",'
+                 '"status":$status,'
+                 '"request_method": "$request_method",'
+                 '"body_bytes_sent":$body_bytes_sent,'
+                 '"request_time":$request_time,'
+                 '"upstream_response_time":$upstream_response_time,'
+                 '"upstream_addr":"$upstream_addr",'
+                 '"host":"$host",'
+                 '"url":"$uri",'
+                 '"http_x_forwarded_for":"$http_x_forwarded_for",'
+                 '"http_referer":"$http_referer",'
+                 '"http_user_agent":"$http_user_agent"}';
+
+    
+    sendfile on;
+    tcp_nopush on;
+    tcp_nodelay on;
+    server_tokens off;
+    types_hash_max_size 4096;
+    server_names_hash_bucket_size 128;
+    
+    keepalive_timeout 0;
+    client_max_body_size 0;
+
+    gzip on;
+    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
+    gzip_min_length 1k;
+    gzip_comp_level 1;
+    gzip_buffers 32 4k;
+
+    map $http_connection $connection_upgrade {
+        "~*Upgrade" $http_connection;
+        default keep-alive;
+    }
+
+    include conf.d/*.conf;
+}

+ 3 - 3
start.sh

@@ -2,7 +2,7 @@
 
 
 set -e
 set -e
 
 
-cd bin/
+cd build/bin/
 
 
 ###############################################################################
 ###############################################################################
 # 启动 bnt 项目应用
 # 启动 bnt 项目应用
@@ -23,5 +23,5 @@ nohup java -jar tnb-data.jar > tnb-data.log 2>&1 &
 ###############################################################################
 ###############################################################################
 # 启动 oss-store 应用
 # 启动 oss-store 应用
 ###############################################################################
 ###############################################################################
-cd oss-store
-bash start.sh
+# cd oss-store
+# bash start.sh