Appearance
部署服务端程序
IMPORTANT
本文档介绍u8-x-server程序的部署。 u8-x-server程序是SDK核心业务服务,处理和SDK客户端的交互协议、各个渠道的登录认证和支付回调协议等,支持集群部署。
部署之前, 请先确定所使用的服务器系统的时区,数据库的时区;如果时区不是UTC+8(Asia/Shanghai),请将时区统一。
发布项目
如果你已经看过服务端开发环境搭建, 那么开发环境搭建好了之后, 你可以执行如下命令,生成u8-x-server程序的发布目录:
bash
./gradlew u8-x-server:release
等待执行完成之后, 会在U8Servers/release/u8-x-server目录下生成可部署程序。 部署目录结构如下:
server.dev
-----bin: 该目录包含了程序运行的可执行jar包
----application.properties: 程序配置文件,在该文件中指定使用dev还是prod
----application-dev.properties: 开发环境配置文件
----logback-spring.xml logback日志配置文件
service.sh: Linux下快捷启动辅助脚本
startdev.sh: Linux下启动脚本
stopdev.sh: Linux下结束程序脚本
程序部署,我们以CentOS 7.2系统(推荐使用CentOS 7.2/7.6)的云服务器为例,我们将上述目录下所有文件直接上传到云服务器上某个目录下,比如/home/u8.server目录下即可。
配置参数
如果您还没有安装安装mysql数据库,请参考这篇文档完成Mysql的安装和配置: MySql配置
如果您还没有安装Redis,请参考这篇文档完成Redis的安装和配置:Redis配置
程序配置
拷贝到服务器上之后, server.dev目录下,打开application.properties和application_dev.properties文件,检查并修改如下配置项:
bash
server.port: 程序启动后占用的端口
spring.servlet.multipart.location: 程序临时文件目录位置,建议手动指定,防止使用系统临时目录,一段实际无使用,被系统回收,导致程序需要重启
spring.datasource.url: 数据库链接,修改其中的数据库IP地址,端口和数据库名称即可。
spring.datasource.username: 数据库用户名
spring.datasource.password: 数据库用户密码
spring.redis.host:redis服务所在的ip地址
spring.redis.password: redis服务的密码,如果redis中没有配置,可以为空
spring.redis.port: redis服务的端口,默认是6379
spring.redis.database: 当前程序使用的redis数据库索引, 取值:0到15
日志配置
bash
logback-spring.xml文件中可以配置日志输出的等级, 一般我们可以设置为warn或者error级别,可以减少日志文件的大小
启动服务
程序采用java开发,所以服务器上需要有jdk环境(jdk版本:1.8),如果你的服务器上还没有安装, 请先安装jdk:
bash
yum install java-1.8.0-openjdk* -y
部署目录下有几个执行脚本, 为了这些脚本可以在linux下执行, 请先分别分配一下可执行权限; 命令行进入/home/xsdk.server目录下,然后执行如下命令
bash
chmod +x startdev.sh
chmod +x stopdev.sh
chmod +x service.sh
启动后端程序,执行如下命令:
bash
./startdev.sh
如果执行失败, 提示bash not found,可能是因为脚本在Windows下操作过,导致脚本换行符变成Windows下的格式了,可以先用命令更改一下换行符格式;依次执行如下命令:
bash
sed -i "s/\r//" startdev.sh
sed -i "s/\r//" stopdev.sh
sed -i "s/\r//" service.sh
启动之后, 可以看下server.dev目录下, 是否出现了nohup.out和run.pid等文件:
bash
run.pid: 当前程序的进程ID文件
nohup.out: 当前启动程序的控制台日志输出文件
nohup.out.bak: 上一次启动后程序的日志备份文件
log目录: sdk.log是当前程序输出的日志文件,其他是每天一个日志文件
关闭程序, 执行如下命令:
bash
./stopdev.sh
后续重启的话, 我们按如下顺序重启:
1、执行 ./stopdev.sh
2、等待10来秒,等程序关闭完成
3、执行 ./startdev.sh
注意事项
1、 服务端程序直接对外访问的话,请将程序的端口添加到服务器上的防火墙端口过滤规则中
2、 如果使用的是云服务器等,云服务器一般有专门的端口访问设置,也请在端口访问规则中,将后端程序的端口添加到对外访问规则中