Skip to content

系统部署

精简项目

提示

为了演示方便,系统默认安装了演示模块,如果不需要演示模块,可以在项目中去除依赖。同时为了管理方便,SDK代码也在同一个项目中,SDK构建时使用了GPG插件, 可能导致打包失败,需要手动去除依赖。

后端

  1. 在项目的根目录下,打开pom.xml文件,找到modules下的daxpay-single-sdk,删除即可,可以同时将daxpay-single-sdk一块删除,这样就去除了SDK代码。
  2. 在项目daxpay-single/daxpay-single-start中打开该目录下的pom.xml文件,找到支付演示模块daxpay-single-demo的依赖,删除即可,也可以同时删除对应的代码,这样就去除了演示模块。
  3. 在项目daxpay-single/daxpay-single-start模块中,找到对应的application-*.yml配置文件,将其中关于daxpay.demo.*相关的配置删除。
  4. 在数据库中删除dax_pay_demo开头的相关表。

前端

  1. 在项目中src/views找到demo模块删除即可。
  2. 在后台管理端找到paydemo相关的菜单进行删除,或者直接在数据库中进行删除也可。

后端构建

由于DaxPay底层基于Bootx-Platform进行构建,所以构建方式也类似Bootx-Platform,具体构建方式请参考对应文档 [后端部署]/platform/overview/config/后端部署.md, 不同点是DaxPay生成的可执行Jar文件在daxpay-single-start模块下

前端构建

由于DaxPay底层基于Bootx-Platform进行构建,所以构建方式也类似Bootx-Platform,具体构建方式请参考对应文档 [前端部署]/platform/overview/config/前端部署.md)

部署示例(前后端独立部署)

提示

因为支付系统会涉及到一些三方支付网关的回调,以及例如微信授权域名、jsapi安全域名的限制,所以部署时,我们需要保证访问的入口地址尽量少,从而尽量少的占用如微信公众平台各类域名的占用。 这样就需要我们对项目进行一些配置,从而实现这些诉求。

域名分配

假定我们拥有一个域名www.daxpay.com,并且该域名已经备案,下面的配置是独立部署模式的配置示例:

项目域名分配说明
serverhttps://www.daxpay.com/server/后端独立部署类不同的机器样,通常也不会被直接被访问,所以做个请求转发即可满足回调和接口调用的需求
H5https://www.daxpay.com/h5/H5手机端通常使用手机访问,同时在微信中的访问话,需要占用微信授权域名和jsapi安全域名的数量,所以和PC前端放到了同一个域名下
PChttps://www.daxpay.com/PC端是用户和管理员访问的入口,所以让其可以直接访问

移动端配置

分别提供了前端嵌入到后端中和独立部署两种模式,区别是网站的根目录和接口的前缀配置不同,下面的配置是独立部署模式的.env.production配置示例:

properties
# 发布路径
VITE_PUBLIC_PATH = /h5

# 接口前缀
VITE_GLOB_API_URL_PREFIX = /server

# 接口地址留空即可
VITE_GLOB_API_URL=

PC端配置

PC端可以不进行额外的配置,直接打包即可。

Nginx配置

此处前端的静态文件,为了方便部署,我们分别放在了两个目录下webh5。项目启用了HTTPS,具体配置过程请自行查阅资料,静态文件的分布以及转发部分配置如下:

shell
# 后端服务请求转发, 
location /server/ {
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     # 后台接口地址
    proxy_pass http://1.1.1.1:9000/; 
    proxy_redirect default; 
    # 处理跨域
    add_header Access-Control-Allow-Origin *; 
    add_header Access-Control-Allow-Headers X-Requested-With; 
    add_header Access-Control-Allow-Methods *; 
}
# 将根路径映射到web前端
location / {
    # PC前端静态文件所在的路径
    alias /www/sites/www.daxpay.com/index/web/; 
}
# 将h5路径映射到h5前端
location /h5/ {
    # h5前端静态文件所在的路径
    alias /www/sites/www.daxpay.com/index/h5/; 
}

部署示例(前端嵌入在后端中)

警告

这种方式如果接口地址根目录,将会请求异常,等待后续完善

提示

有时候部署时不方便安装Nginx,又或者客户技术水平有限,只会简单这java启停命令,所以将前端嵌入在后端中,这样可以减少部署的复杂度。只需要启动起来后端即可。 注意:前端路由方式需要为hash模式

PC配置

PC端打包时只需要修改接口前缀即可

properties
# 发布路径
VITE_PUBLIC_PATH=/

# 接口前缀
VITE_GLOB_API_URL_PREFIX=/server

# 接口地址留空即可
VITE_GLOB_API_URL=

H5配置

H5端访问是通过二级目录进行访问的,所以打包时需要修改即可发布路径接口前缀

properties
# 发布路径, 需要配置为放在后端中的的路径
VITE_PUBLIC_PATH=/h5

# 接口前缀, 因为已经嵌入在了后端中了
VITE_GLOB_API_URL_PREFIX=/

# 接口地址留空即可
VITE_GLOB_API_URL=

后端配置

在后端项目中resources目录下创建static目录,将web打包的静态文件拷贝到该目录下,然后在static目录文件夹下创建h5文件夹,存放H5前端打包后的静态文件。 添加到后端项目中后,访问时默认需要访问前端所在的目录/index.html#/*,这样用起来会稍显繁琐,所以系统内置了转发控制器,见ForwardH5Controller类。

本文档内容版权属于济南易杯光年软件技术有限公司