rap1.0设置session过期时间及RAP2.0部署

rap

rap sesstion time out setting:

referr:https://my.oschina.net/dong706/blog/1786188

延长session过期时间

    rap的默认session过期时间过短,导致一天要登录多次rap,经常在保存接口数据的时候提示登录失效要重新登录,比较影响工作效率,因此修改几处配置延长session过期时间(我这里是设置为7天)。

    (1)修改com.taobao.rigel.rap.common.listener.SessionListener的sessionCreated方法:

    增加代码event.getSession().setMaxInactiveInterval(86400*7)

public void sessionCreated(HttpSessionEvent event) {
        ServletContext context = event.getSession().getServletContext();
        //设置session过期时间
        event.getSession().setMaxInactiveInterval(86400*7);//秒钟
        // online users count processing
        String key = ContextManager.KEY_COUNT_OF_ONLINE_USER_LIST;
        if (context.getAttribute(key) == null) {
            context.setAttribute(key, 0);
        }
        int curCountOfOnlineuserList = (Integer) context.getAttribute(key);
        context.setAttribute(key, curCountOfOnlineuserList + 1);
    }
    (2)修改src\main\webapp\WEB-INF\web.xml,把session-timeout时间修改为10080分钟。

 <session-config>
        <session-timeout>10080</session-timeout>
    </session-config>
    (3)修改Tomcat/conf/web.xml,把session-timeout时间修改为10080分钟。

<session-config>
        <session-timeout>10080</session-timeout>
    </session-config>
    上述修改完成重新发布即可。

操作:

cd /opt/apache-tomcat-8.5.4/webapps/ROOT/WEB-INF/classes/com/taobao/rigel/rap/common/listener
cp -v SessionListener.class SessionListener.class.ori
md5sum SessionListener.class

a0a48deb6db32249f2e0eb6ebd03ab8c SessionListener.class

export CLASSPATH=".:/opt/jdk1.8.0_101/lib/dt.jar:/opt/jdk1.8.0_101/lib/tools.jar:/opt/apache-tomcat-8.5.4/lib/servlet-api.jar:/opt/apache-tomcat-8.5.4/webapps/ROOT/WEB-INF/classes"
vi SessionListener.java

//set session timeout
event.getSession().setMaxInactiveInterval(86400*7);//7days

javac SessionListener.java

/opt/apache-tomcat-8.5.4/bin/shutdown.sh
/opt/apache-tomcat-8.5.4/bin/startup.sh

rap2 deploy

mysql

run_mysql5.7.sh

#!/bin/bash
docker run  \
--restart="always" \
-d --name rap2-new-mysql \
-v /data/project/rap2_181115/mysql_data:/var/lib/mysql \
-v /data/project/rap2_181115/mysql_conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
i71:5000/mysql:5.7

mysql_conf/my.conf

[client]
port        = 3306
socket        = /var/run/mysqld/mysqld.sock
default-character-set    = utf8
[mysqld_safe]
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
nice        = 0
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp
lc-messages-dir    = /usr/share/mysql
explicit_defaults_for_timestamp
log-error    = /etc/mysql/error.log
symbolic-links=0
!includedir /etc/mysql/conf.d/
validate_password=off

创建数据库:

docker exec -it rap2-new-mysql mysql -uroot -p123456 -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;'

redis数据库

启动redis数据库

docker run -d --restart always --name rap2-redis i71:5000/redis:3.0

后端rap2-delos

修改配置文件:
vi rap2-delos/src/config/config.prod.ts

import { IConfigOptions } from "../types";

//先从环境变量取配置
let config: IConfigOptions =  {
    version: '2.3',
    serve: {
        port: (process.env.EXPOSE_PORT && parseInt(process.env.EXPOSE_PORT)) || 8080,
    },
    keys: ['some secret hurr'],
    session: {
        key: 'rap2:sess',
    },
    db: {
        dialect: 'mysql',
        host: process.env.MYSQL_URL || 'MYSQL_URL',
        port: (process.env.MYSQL_PORT && parseInt(process.env.MYSQL_PORT)) || 3306,
        username: process.env.MYSQL_USERNAME || 'root',
        password: process.env.MYSQL_PASSWD || '123456',
        database: process.env.MYSQL_SCHEMA || 'RAP2_DELOS_APP',
        pool: {
            max: 80,
            min: 0,
            idle: 20000,
            acquire: 20000,
        },
        logging: false,
    },
    redis: {
        host: process.env.REDIS_URL || 'REDIS_URL',
        port: (process.env.REDIS_PORT && parseInt(process.env.REDIS_PORT)) || 6379
    },
    mail: {
      host: 'smtp-mail.outlook.com',
      port: 587,
      secure: false,
      auth: {
          user: 'rap2_notify@outlook.com',
          pass: ''
      }
    },
    mailSender: 'rap2_notify@outlook.com',
}

export default config

build docker镜像

cd rap2-delos
docker build -t i71:5000/rap2-delos:181115.0 .

启动docker镜像

#!/bin/bash
docker stop rap2-new-delos && docker rm rap2-new-delos
#docker run -d --restart=always --name rap2-new-delos --link rap2-new-mysql:MYSQL_URL --link rap2-redis:REDIS_URL  i71:5000/rap2-delos:181115.0 /bin/sh -c 'sleep 30; node scripts/init; node dispatch.js'

docker run -d --restart=always --name rap2-new-delos -p 8090:8080 --link rap2-new-mysql:MYSQL_URL --link rap2-redis:REDIS_URL  i71:5000/rap2-delos:181115.0 /bin/sh -c 'node dispatch.js'

前端rap2-dolores

配置后端服务器的地址
vi rap2-dolores/src/config/config.prod.js

module.exports = {
  serve: 'http://10.0.1.70:8090',
  keys: ['some secret hurr'],
  session: {
    key: 'koa:sess'
  }
}

编写Dockerfile
vi rap2-dolores/Dockerfile

FROM node:8.11.1-alpine
WORKDIR /app
ADD . /tmp
RUN /bin/sh -c 'cd /tmp && npm install --registry https://registry.npm.taobao.org && npm run build && mv ./build/ /app/ && npm install -g serve && rm -rf /tmp'
CMD ["serve","-s","./build","-p","80"]

启动前端:

docker run -d --restart always --name rap2-dolores -p 81:80 i71:5000/rap2-dolores:181115.0
posted @ 2018-11-15 16:45  rootid  阅读(367)  评论(0)    收藏  举报