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

浙公网安备 33010602011771号