部署手册

本文以linux下的部署环境为例,说明平台的环境与安装部署过程

1.部署拓仆图

【说明】:
有背景图部分为现有的功能系统资源。其他部分则为JSAAS系统新部署架构图。

2.环境准备

服务器名 数量 硬件要求 软件环境
前置服务器 1 CPU :2 X 2.4G + CentOs 7.0 +
内存:16G+ Nginx 1.2 +
硬盘:128G+
网卡:千兆网关
应用服务器 2 CPU :4 X 2.4G + CentOs 7.0+
内存:24G+ JDK 1.8+
硬盘:256G+ Tomcat 8.5+
网卡:千兆网关
数据库服务器 1 CPU: 4X2.4G+ Windows Server 2012
内存:24G+ SQL Server 2012
硬盘:512G 说明:
网卡:千兆网关 有条件时加多一台作为双机热备处理。
文件服务器 1 CPU :2 X 2.4G + CentOs 7.0+
内存:16G+ 说明:
硬盘:1T 外置一块硬盘作为文件的定时备份
外置一盘作为文件(1T)备份目录
网卡:千兆网关
缓存服务器、MQ服务器 1 CPU :2 X 2.4G + CentOs 7.0+
内存:16G+ Apache ActiveMQ 5.12+
硬盘:100G Redis 6.0+
网卡:千兆网关

3.部署过程

3.1. 应用服务器

两台应用服务采用相同的配置,配置过程以下所示。

3.1.1.安装JDK

软件安装文件放置于/data/software下,如:

  • 切换至目录
    cd /usr/
  • 创建jdk的安装目录
    sudo mkdir java
  • 授权java目录运行权限
    chmod 777 java
  • 解压jdk的安装包至java目录
    sudo tar -zxvf /data/software/jdk-8u261-linux-x64.tar.gz -C /usr/local/java
  • 修改环境变量
    sudo vi /etc/profile

在该文件的最后面增加以下环境变量配置

export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 刷新一下环境变量
source /etc/profile
  • 检查一下环境变量

    java version

3.1.2. 安装tomcat

安装并解压至 /usr/local/tomcat目录下,按顺序执行以下命令

cd /usr/local
sudo mkdir tomcat
sudo chmod 777 tomcat

sudo unzip /data/software/apache-tomcat-8.5.59.zip -d /usr/local/tomcat/

重命名文件夹为tomcat85

[zlgmcu@MMS-app1 local]$ cd tomcat
[zlgmcu@MMS-app1 tomcat]$ mv apache-tomcat-8.5.59/ tomcat85

授权
sudo chmod 777 -R tomcat85/

设置tomcat的环境变量

sudo vi /etc/profile

修改以下变量为:

export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export CATALINA_HOME=/usr/local/tomcat/tomcat85
export PATH=:$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

授权bin下的执行权限

$ sudo chmod 755 *.sh

修改tomcat的连接数

sudo vi /usr/local/tomcat/tomcat85/conf/server.xml

    <Connector port="8080" protocol="HTTP/1.1"
               URIEncoding="UTF-8"
               maxThreads="10240"
               acceptThreads="12240"
               maxConnections="10240"
               minSpareThreads="100"
               connectionTimeout="20000"
               redirectPort="8443" />

启动tomcat

./startup.sh

设置开机启动

sudo chmod +x /etc/rc.d/rc.local 
sudo vi /etc/rc.d/rc.local

输入以下脚本


sudo sh /usr/local/tomcat/tomcat85/bin/startup.sh
  1. 在tomcat 的catalina.sh中第二行增加
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export CATALINA_HOME=/usr/local/tomcat/tomcat85
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2、新建/etc/init.d/tomcat文件

#!/bin/bash
#chkconfig: 2345 80 90
#description:auto_run

start(){
   echo -n "Starting Tomcat service:"
   sh /usr/local/tomcat/tomcat85/bin/startup.sh
   echo "tomcat is succeessfully started up"
}  

stop(){
   echo -n "Shutting down tomcat: "
   sh /usr/local/tomcat/tomcat85/bin/shutdown.sh
   echo "tomcat is succeessfully shut down."
}  

status(){
    numproc=`ps -ef | grep catalina | grep -v "grep catalina" | wc -l`
    if [ $numproc -gt  ]; then
       echo "Tomcat is running..."
    else
       echo "Tomcat is stopped..."
    fi
}  

restart(){
   stop
   start
}  

case "$1" in
start)
   start
   ;;
stop)
   stop
   ;;
status)
   status
   ;;
restart)
   restart
   ;;
*)
   echo $"Usage: $0 {start|stop|status|restart}"
   exit
esac

3、注册服务

chkconfig --add tomcat

4、查看服务

chkconfig --list|grep tomcat

5、启动服务

service tomcat start

3.2.缓存服务器

安装redis,在服务器上执行创建目录,并且解压内容并安装

$ cd /usr/local/
$ sudo mkdir redis
$ wget https://download.redis.io/releases/redis-6.0.8.tar.gz
$ tar xzf redis-6.0.8.tar.gz
$ cd redis-6.0.8
$ make

【安装说明】

若在编译过程中存在问题,可能缺少gcc-c++编译器,需要预安装一下,如下:

yum -y install gcc-c++

重新再删除原来的redis-6.0.8目录,重新再make一下。

若执行还有编译语法的问题,则需要升级一下gcc-cc++.

[root@localhost redis-6.0.1]# gcc -v                             # 查看gcc版本
[root@localhost redis-6.0.1]# yum -y install centos-release-scl  # 升级到9.1版本
[root@localhost redis-6.0.1]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@localhost redis-6.0.1]# scl enable devtoolset-9 bash
以上为临时启用,如果要长期使用gcc 9.1的话:
[root@localhost redis-6.0.1]# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

运行redis

$ sudo sh src/redis-server

测试是否正常

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

修改redis的密码 及为后台运行模式

进入redis的安装目录下,找到redis.conf文件,修改以下行为对应的命令。

requirepass 123456

daemonize yes

修改为开机启动

新建redis的配置文件

vim /etc/init.d/redis

并修改内容为:

#!/bin/sh
#chkconfig:   2345 90 10
#description:  Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/usr/local/redis/redis-6.0.8/src/redis-server
REDIS_CLI=/usr/local/redis/redis-6.0.8/src/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/usr/local/redis/redis-6.0.8/redis.conf"

case "$1" in  
    start)  
        if [ -f $PIDFILE ]  
        then  
                echo "$PIDFILE exists, process is already running or crashed"  
        else  
                echo "Starting Redis server..."  
                $EXEC $CONF  
        fi  
        if [ "$?"="0" ]   
        then  
              echo "Redis is running..."  
        fi  
        ;;  
    stop)  
        if [ ! -f $PIDFILE ]  
        then  
                echo "$PIDFILE does not exist, process is not running"  
        else  
                PID=$(cat $PIDFILE)  
                echo "Stopping ..."  
                $REDIS_CLI -p $REDISPORT SHUTDOWN  
                while [ -x ${PIDFILE} ]  
               do  
                    echo "Waiting for Redis to shutdown ..."  
                    sleep 1  
                done  
                echo "Redis stopped"  
        fi  
        ;;  
   restart|force-reload)  
        ${0} stop  
        ${0} start  
        ;;  
  *)  
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
        exit 1  
esac

修改以上配置为实际生产环境的参数

REDISPORT=6379
EXEC=/usr/local/redis/redis-6.0.8/src/redis-server
REDIS_CLI=/usr/local/redis/redis-6.0.8/src/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/usr/local/redis/redis-6.0.8/redis.conf"

设置权限

chmod 755 /etc/init.d/redis

启动测试

/etc/init.d/redis start

启动成功后会提示如下信息

Starting Redis server...
Redis is running...

设置为开机启动

chkconfig --add /etc/init.d/redis
chkconfig redis on

【说明】:

查看第一步的配置文件信息,是否和第二步的文件信息一致,vim粘贴会出现粘贴不全的问题

3.3. MQ服务器

https://blog.csdn.net/zhangbinch/article/details/105537294

3.4. 文件服务器

多系统共用一个文件目录,因此需要部署一文件共享服务器给两台应用服务器进行附件的上传与下载。使用的是NFS服务,具体的原理请参考以下文章介绍。

https://blog.csdn.net/aixiaoyang168/article/details/83782336

NFS 服务安装

软件安装
sudo yum install -y nfs-utils rpcbind
配置NFS
sudo vi /etc/exports
/data/mms_files 192.168.0.52/24(rw,sync,insecure,no_subtree_check,no_root_squash)
/data/mms_files 192.168.0.53/24(rw,sync,insecure,no_subtree_check,no_root_squash)
启动rpcbind服务
sudo service rpcbind start

【查看服务】

rpcinfo -p localhost

启动nfs服务
sudo service nfs start
检查rpc是服务是否起来
rpcinfo -p localhost

两台应用服务器挂载附件文件夹

安装nfs客户端

sudo yum install nfs-utils

创建本地目录,并挂至文件服务器目录

sudo mount 192.168.0.55:/data/mms_files /data/mms_files

授权目录访问权限

sudo chmod 777 /data/mms_files

3.5. 前置服务器nginx

nginx安装过程忽略, 以下主要是说明如何配置nginx.conf的配置文件

    upstream mms {
        ip_hash;
        server 192.168.0.52:8080 weight=1;
        server 192.168.0.53:8080 weight=1;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

      ## ...
       location / {
            proxy_set_header Host       $host;
            proxy_pass http://mms;
            client_max_body_size 100m;
        }

   }

4. 部署应用

把mms程序包部署至两台应用服务器上的目录tomcat85/webapps目录下,相应修改以下运行的配置,也可在打包war前把配置设置为正确的环境。

修改mms/WEB-INF/classes/resources/application.yml的以下数据库连接地址:

    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://192.168.0.156:1433;DatabaseName=MMS_DEV;integratedSecurity=false;SelectMethod=cursor;
    username: test
    password: abcabc

修改mms/WEB-INF/classes/resources/application.properties以下配置

# 修改缓存类型为redis
server.cache.cache-type=redis
# 配置redis连接信息
spring.redis.host=192.168.0.53
spring.redis.port=6379
spring.redis.password=#mms#001
spring.redis.timeout=5000
spring.redis.database=0
spring.session.store-type=redis
# 发邮件配置
mail.host=aps360.cn
mail.port=25
mail.nickName=MMS Platform
mail.username=regservice@aps360.cn
mail.password=reg#223
mail.ssl=false

# 数据库连接数配置

db.filters=stat
db.name=\u7CFB\u7EDF\u6570\u636E\u6E90
db.type=mssql
db.minimumConnectionCount=5
db.maximumConnectionCount=5000
db.maxWait=60000
db.timeBetweenEvictionRunsMillis=60000
db.minEvictableIdleTimeMillis=30000
db.validationQuery=SELECT 1 from act_ge_property
db.testWhileIdle=true
db.testOnBorrow=false
db.testOnReturn=false
db.poolPreparedStatements=true
db.maxPoolPreparedStatementPerConnectionSize=20

# Ureport的上传地址配置
ureport.fileStoreDir=/data/mms_files/ureportfiles
ureport.disableHttpSessionReportCache=false
ureport.disableFileProvider=true
ureport.debug=true

运行tomcat应用

切换至应用服务下的tomcat的bin目录

cd /usr/local/tomcat/tomcat85/bin
sudo sh startup.sh

访问应用

mms.zlg.com/mms/loing.jsp

默认账号admin,密码:1

【说明】
mms.zlg.com为前置服务器的映射地址。

文档更新时间: 2021-03-25 20:43   作者:csx