Appearance
系统部署 ¶
精简项目 ¶
提示
为了演示方便,系统默认安装了演示模块,如果不需要演示模块,可以在项目中去除依赖。同时为了管理方便,SDK代码也在同一个项目中,SDK构建时使用了GPG
插件, 可能导致打包失败,需要手动去除依赖。
后端 ¶
- 在项目的根目录下,打开
pom.xml
文件,找到modules
下的daxpay-single-sdk
,删除即可,可以同时将daxpay-single-sdk
一块删除,这样就去除了SDK代码。 - 在项目
daxpay-single/daxpay-single-start
中打开该目录下的pom.xml
文件,找到支付演示模块daxpay-single-demo
的依赖,删除即可,也可以同时删除对应的代码,这样就去除了演示模块。 - 在项目
daxpay-single/daxpay-single-start
模块中,找到对应的application-*.yml
配置文件,将其中关于daxpay.demo.*
相关的配置删除。 - 在数据库中删除
dax_pay_demo
开头的相关表。
前端 ¶
- 在项目中
src/views
找到demo
模块删除即可。 - 在后台管理端找到
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
,并且该域名已经备案,下面的配置是独立部署模式的配置示例:
项目 | 域名分配 | 说明 |
---|---|---|
server | https://www.daxpay.com/server/ | 后端独立部署类不同的机器样,通常也不会被直接被访问,所以做个请求转发即可满足回调和接口调用的需求 |
H5 | https://www.daxpay.com/h5/ | H5手机端通常使用手机访问,同时在微信中的访问话,需要占用微信授权域名和jsapi安全域名的数量,所以和PC前端放到了同一个域名下 |
PC | https://www.daxpay.com/ | PC端是用户和管理员访问的入口,所以让其可以直接访问 |
移动端配置 ¶
分别提供了前端嵌入到后端中和独立部署两种模式,区别是网站的根目录和接口的前缀配置不同,下面的配置是独立部署模式的
.env.production
配置示例:
properties
# 发布路径
VITE_PUBLIC_PATH = /h5
# 接口前缀
VITE_GLOB_API_URL_PREFIX = /server
# 接口地址留空即可
VITE_GLOB_API_URL=
PC端配置 ¶
PC端可以不进行额外的配置,直接打包即可。
Nginx配置 ¶
此处前端的静态文件,为了方便部署,我们分别放在了两个目录下
web
和h5
。项目启用了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
类。