title: 一卡通v5系统安装部署手册 date: 2016-06-22 11:27:47 tags:

文件修改控制

修改日期版本修改内容修改人
2015-10-06v1.0建立夏凯祥
2016-06-22v1.1增加服务环境配置要求等内容汤成

部署环境

  • 系统拓扑图 网络拓扑图

  • 数据库 数据库包括一卡通核心交易数据库(Oracle 11g)和缓存服务数据库(Redis)。交易数据库安装配置有专门DBA负责;缓存数据库由实施工程师负责安装配置,缓存服务器要求 4核CPU,8G 内存,500G 硬盘,一块千兆网卡。

  • 应用服务器 应用服务器提供一卡通服务门户、一卡通管理平台业务功能。一般需要部署两台服务器作为应用集群。服务器要求 4核CPU,8G 内存,200G硬盘,一块千兆网卡。操作系统为 CentOS 7OracleLinux 7 64 位。

  • API 服务器 API 服务器提供一卡通平台业务服务API,提供给包括设备前置、第三方应用前置、支付宝微信等充值服务前置接入的 API 服务。至少部署两台服务器作为应用集群,现场需要根据实际负载情况考虑增加 API 服务器数量。服务器要求 4核CPU,8G 内存,200G硬盘,一块千兆网卡。操作系统为 CentOS 7OracleLinux 7 64 位。

  • nginx 代理服务器 nginx 代理服务器提供了对应用服务、API服务的反向代理服务。从安全性的要求,需要提供一卡通外网访问地址,并且服务器需要启用 HTTPS 安全访问方式。推荐使用学校申请的 HTTPS 安全证书,如果环境不具备可以选择自行颁发不受信证书。

    服务器要求 2核CPU,4G 内存,200G硬盘,两块千兆网卡。操作系统为 CentOS 7OracleLinux 7 64 位。

    nginx 服务必须提供容错和负载功能,有两种部署方案:

    • CDN 域名解析
    • LVS + Keepalived 容错服务
  • 各种前置服务 前置服务包括消费前置、门禁前置、微信支付宝充值服务前置、圈存前置等等。前置服务需要根据现场使用情况进行配置,无特殊要求下,前置服务器配置:2核CPU,4G 内存,200G硬盘,一块千兆网卡,操作系统为 CentOS 7OracleLinux 7 64 位。

    消费前置- 消费前置可以部署两台实现容错。消费网关可以配置连接两台消费前置,网关会自动判断请求正常的消费前置。

安装说明

Redis 服务安装配置

redis 服务可以通过 yum 快捷安装:

$ yum install -y redis
$ systemctl enable redis.service
$ vi /etc/redis.conf # 修改 redis 配置
$ systemctl start redis.service
$ systemctl status redis.service # 检查服务状态
 redis.service - SYSV: Starts and stops the redis daemon.
   Loaded: loaded (/etc/rc.d/init.d/redis)
   Active: active (running) since  2016-06-22 14:31:02 CST; 15s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 31203 ExecStop=/etc/rc.d/init.d/redis stop (code=exited, status=0/SUCCESS)
  Process: 31205 ExecStart=/etc/rc.d/init.d/redis start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/redis.service
           ├─30562 /usr/bin/redis-server 127.0.0.1:6379
           └─31059 /usr/bin/redis-server 172.28.201.101:6379
$ redis-cli ping  # 验证服务是否正常,正常情况下会响应 PONG
PONG

redis 配置内容如下:

bind: host_ip  # host_ip 是服务器一卡通专网 IP
maxmemory: 4G  # 最大内存 4G

应用服务/API 服务安装配置

应用服务/API服务(以下简称服务)都是采用 Java 平台部署,需要先安装 JDK 7 环境和 Tomcat 7 应用服务器。安装过程请使用 root 用户进行操作。

JDK 7 可以通过 Oracle 官方网站下载,安装过程如下:

$ tar xvfz jdk-7u79-linux-x64.tar.gz -C /usr/local
$ mv /usr/local/jdk1.7.0_79 /usr/local/jdk7

打开配置文件:vim ~/.bash_profile ,在尾部添加下面内容,然后重新登录

export JAVA_HOME=/usr/java/jdk7
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export JAVA_ENV=-Dfile.encoding=utf-8

为了简化配置,我们提供了标准配置好的 Tomcat 包,请通这里下载。下载后安装步骤如下:

$ tar xvfz apache-tomcat7-config.tar.gz -C /opt/tomcat

Tomcat 数据库连接配置需要通过加密配置,加密串可以通过密码管理服务或者请技术支持提供加密串。当获取加密配合后修改 conf/context.xml 文件。

启动、停止 Tomcat 服务方式如下:

$ cd /opt/tomcat/bin
$ ./startup.sh # 启动服务
$ ./shutdown.sh # 停止服务

nginx 代理服务器安装配置

nginx 代理服务安装步骤如下:

$ yum install -y nginx
$ systemctl enable nginx.service
$ vi /etc/nginx/nginx.conf
$ systemctl start nginx.service
$ systemctl status nginx.service
 nginx.service - Nginx Web Server
   Loaded: loaded (/etc/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since  2016-05-02 23:19:37 CST; 1 months 20 days ago
     Docs: http://nginx.org
 Main PID: 2607 (nginx)
   CGroup: /system.slice/nginx.service
           ├─2607 nginx: master process /usr/local/sbin/nginx
           └─2610 nginx: worker process

nginx.conf 配置模板如下,需要根据现场情况自行修改配置:

#user  nobody;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    proxy_headers_hash_max_size 51200;
    proxy_headers_hash_bucket_size 6400;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx-access.log  main;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

    upstream epay_balance {
      # 每个server表示一个服务地址
      server app1:8080 weight=5;
      server app2:8080 weight=5;
      keepalive 20;
    }

    upstream epayapi_balance {
      # 每个server表示一个服务地址
      server api1:8080 weight=5;
      server api2:8080 weight=5;
      keepalive 20;
    }

    # HTTPS server
    server {
        listen       8443 ssl;
        # 如果用户提供域名,请使用域名访问
        server_name  localhost;
        
        ssl_certificate      /etc/nginx/conf/server.crt;
        ssl_certificate_key  /etc/nginx/conf/server.key;
        
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location = / {
          rewrite ^ https://$host:$server_port/epay/ permanent;
        }
        location /epay {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $http_x_forwarded_for;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://epay_balance;
            proxy_redirect http:// https://;
        }
        
        location /epayapi {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $http_x_forwarded_for;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://epayapi_balance;
            proxy_redirect http:// https://;
        } 
    }
}

数据库初始化

按照文件名顺序执行数据库初始化脚本

一卡通在线交易系统(epay)和悦校(epayapi+悦校APP)是上海树维一卡通联机交易系统的重要组成部分。这两个服务是Java开发的web服务程序,因此需要java运行环境JRE(Java Runtime Environment)以及支持Servlet和JSP的应用服务器,推荐直接安装java JDK和tomcat服务器。JDK要求1.7以上的版本,tomcat 推荐使用tomcat 7。另外,悦校接口服务(epayapi)采用redis保存手机终端登陆信息,因此在服务器上要安装redis。所以,需要安装的有:安装java JDK,推荐JDK7。官方下载地址:link

安装tomcat,推荐Tomcat7。可以直接使用树维公司提供的定制工具包,也可以去官网下载地址:link

安装redis。官方下载地址:link

发布悦校平台服务和悦校接口服务和修改配置。 此外,悦校所需的数据库、一卡通服务等安装这里不做说明。

2 安装与配置

1 安装JDK。

点击上面jdk的下载地址,选中Accept License Agreement,根据服务器的系统下载相应的jdk。

下载 .tar.gz 扩展名的。上传至服务器安装。常见的Linux和windows服务器的jdk安装网上都有记录,这里不再多述。 Linux的教程 http://yacare.iteye.com/blog/2071914; windows的教程百度就能得到http://wenku.baidu.com/view/280fd0ddad51f01dc281f16b.html; 能看懂英文的点这里https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html 成功安装并配置环境变量:如linux下jdk安装路径为:/usr/java/jdk1.7.0_80。则 打开配置文件:vim ~/.bash_profile 在尾部添加:

export  JAVA_HOME=/usr/java/jdk1.7.0_80/
export  PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export  CLASSPATH=.:/usr/java/jdk1.7.0_80/lib:/usr/java/jdk1.7.0_80/jre/lib:$CLASSPATH

刷新配置文件:source ~/.bash_profile 测试命令:java -version 。结果类似如下:

2 安装tomcat

点击上面的下载地址,压缩版 .zip/tar.gz 或安装版 ... installer都可。

也可以直接使用上海树维提供的定制工具包 tomcat7.zip,上传到服务器解压即可。建议使用后者。这里有关tomcat的详细介绍,可供参考:http://freeloda.blog.51cto.com/2033581/1299644 Tomcat目录如下:

我们主要用到4个: bin——启动/停止tomcat; catalina.sh 用于启动和关闭tomcat服务器 configtest.sh 用于检查配置文件 startup.sh 启动Tomcat脚本 shutdown.sh 关闭Tomcat脚本 conf——配置文件 需要配置或修改的文件: server.xml 需要关注和修改的地方: a 关闭Server实例配置:/ b HTTP连接器:。通常会加上编码方式:URIEncoding="UTF-8"。 c AJP连接器: 发布应用时这三个port避免冲突都需要修改。 context.xml 需要关注和修改的地方: 在context组件下增加数据库配置:

有下划线的要根据具体情况而变动。 catalina.properties 在末尾加上下面的配置 org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true Lib——库文件 一般包含下列jar包:

logs——日志文件 此目录下查看tomcat启动或应用程序运行的日志。 webapps——web发布目录 epay和epayapi 等web程序发布目录

3 Redis安装

Redis是一个开源的高性能的key-value数据库。这里用来存储悦校APP的登陆信息。点击上面的下载地址:下载3.0.5版本。

下载后上传至服务器,也可以用下面的命令在服务器上下载: $ wget http://download.redis.io/releases/redis-3.0.5.tar.gz

安装: $ wget http://download.redis.io/releases/redis-3.0.5.tar.gz $ tar xzf redis-3.0.5.tar.gz $ cd redis-3.0.5 $ make 若没有make 命令,请先安装gcc。 修改配置文件,路径:/etc/redis/6379.conf $ vi 6379.conf 根据具体情况加上访问Ip限制:bind 192.168.1.100 10.0.0.1 设置内存大小:maxmemory 524288000 (至少500M) 回到redis目录,运行:$ src/redis-server 查看进程:netstat -tnlp

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

4 发布epay和epayapi,以及修改配置

  1. 发布epayapi 在服务器上安装好tomcat,假设此tomcat名为tomcatepayapi。则在tomcatepayapi/webapps下上传epayapi的发布包,并解压生成epayapi文件夹。

1、修改tomcat配置:根据安装tomcat一节中叙述的。转到tomcatepayapi/conf/配置目录,根据实际情况修改server.xml文件的3处port,和context.xml 的数据库配置,修改oracle数据库的用户名,密码和数据库IP:端口:服务。

server.xml

context.xml

修改epayapi配置文件。路径:tomcatepayapi/webapps/epayapi/WEB-INF/classes下的ksconfig.properties文件。修改对应电控系统的ip和key,一卡通后台的ip,前面安装的redis的ip和端口以及银行圈存前置ip等实际信息。

3、运行tomcat。回到目录tomcatepayapi/bin 下

可以用 ./startup.sh 来启动tomcatepayapi,用./shutdown.sh 停止tomcatepayapi。若无执行权限,可执行命令:chmod 777 *.sh

4、查看日志。在tomcatepayapi/logs下查看日志。 $ cd ../logs/ $ tail -f catalina.out 退出Ctrl+C 正常启动后,打开浏览器输入http://ip:port/epayapi/services/common/getsystemversion(ip为部署服务器的ip,端口port为tomcatepayapi/conf/server.xml中 <Connector port="8091" protocol="HTTP/1.1" .../> 配的端口)会返回主机名+”-hotfix 4.2.2”字样。

在手机端安装APP后请联系树维帮您配置服务器地址,然后才能注册登录。

  1. 发布epay epay的发布和epayapi差不多。首先上传epay的发布包到tomcatepay/webapps并解压。生成epay文件目录。 同样根据实际情况修改tomcatepay/conf下的server.xml 和context.xml 文件配置。 切换到tomcatepay/webapps/epayapi/WEB-INF/classes目录下修改ksconfig.properties文件。文件最后有epayapi的IP和端口需要配置,请根据epayapi发布的ip:port修改

同样切换到tomcatepay/bin 目录下用 ./startup.sh 启动tomcatepay。切换到tomcatepay/logs 目录下查看日志。 正常启动后,可在浏览器上访问:ip是服务器的ip;端口(port)是在tomcatepay/conf/server.xml里配置的。