文件修改控制
修改日期 | 版本 | 修改内容 | 修改人 |
---|---|---|---|
2015-10-06 | v1.0 | 建立 | 夏凯祥 |
2016-06-22 | v1.1 | 增加服务环境配置要求等内容 | 汤成 |
系统拓扑图
数据库 数据库包括一卡通核心交易数据库(Oracle 11g)和缓存服务数据库(Redis)。交易数据库安装配置有专门DBA负责;缓存数据库由实施工程师负责安装配置,缓存服务器要求 4核CPU,8G 内存,500G 硬盘,一块千兆网卡。
应用服务器 应用服务器提供一卡通服务门户、一卡通管理平台业务功能。一般需要部署两台服务器作为应用集群。服务器要求 4核CPU,8G 内存,200G硬盘,一块千兆网卡。操作系统为 CentOS 7
或 OracleLinux 7
64 位。
API 服务器 API 服务器提供一卡通平台业务服务API,提供给包括设备前置、第三方应用前置、支付宝微信等充值服务前置接入的 API 服务。至少部署两台服务器作为应用集群,现场需要根据实际负载情况考虑增加 API 服务器数量。服务器要求 4核CPU,8G 内存,200G硬盘,一块千兆网卡。操作系统为 CentOS 7
或 OracleLinux 7
64 位。
nginx 代理服务器 nginx 代理服务器提供了对应用服务、API服务的反向代理服务。从安全性的要求,需要提供一卡通外网访问地址,并且服务器需要启用 HTTPS 安全访问方式。推荐使用学校申请的 HTTPS 安全证书,如果环境不具备可以选择自行颁发不受信证书。
服务器要求 2核CPU,4G 内存,200G硬盘,两块千兆网卡。操作系统为 CentOS 7
或 OracleLinux 7
64 位。
nginx 服务必须提供容错和负载功能,有两种部署方案:
各种前置服务 前置服务包括消费前置、门禁前置、微信支付宝充值服务前置、圈存前置等等。前置服务需要根据现场使用情况进行配置,无特殊要求下,前置服务器配置:2核CPU,4G 内存,200G硬盘,一块千兆网卡,操作系统为 CentOS 7
或 OracleLinux 7
64 位。
消费前置
- 消费前置可以部署两台实现容错。消费网关可以配置连接两台消费前置,网关会自动判断请求正常的消费前置。
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服务(以下简称服务)都是采用 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 代理服务安装步骤如下:
$ 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
发布悦校平台服务和悦校接口服务和修改配置。 此外,悦校所需的数据库、一卡通服务等安装这里不做说明。
点击上面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 。结果类似如下:
点击上面的下载地址,压缩版 .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程序发布目录
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"
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后请联系树维帮您配置服务器地址,然后才能注册登录。
同样切换到tomcatepay/bin 目录下用 ./startup.sh 启动tomcatepay。切换到tomcatepay/logs 目录下查看日志。 正常启动后,可在浏览器上访问:ip是服务器的ip;端口(port)是在tomcatepay/conf/server.xml里配置的。