# 服务端部署

为了部署方便,采用 Docker Compose 方式部署 Egg.js 和 MySQL 服务。

# 注意事项

  • 服务器使用阿里云 CentOS 7.9
  • 为避免冲突和数据丢失,请使用新的服务器 购买链接 (opens new window)
  • 为避免权限问题,所有操作使用 root 账号进行

# 安装 Docker

yum install -y epel-release git vim yum-utils wget curl

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl start docker

systemctl enable docker

# 启动 API 服务

创建目录并进入

mkdir -p /wwwroot/rxbill && cd /wwwroot/rxbill

创建 .env 配置文件

touch .env

设置 MySQL 密码,这里使用 openssl 生成随机密码

echo "RXBILL_MYSQL_PASSWORD=$(openssl rand -base64 20)"> .env

MySQL 密码配置后不要修改,否则无法再次启动!

下载 docker-compose.yml

wget -P /wwwrooot/rxbill https://rxbill-docs.childsay.com/docker-compose.yml

启动服务

docker compose up -d

验证结果,如访问失败 3 分钟后再试

curl http://127.0.0.1:9011/api/install/status

正确返回 json 则表示成功,示例如下:

{"code":0,"message":"success","data":{"version":"1.0.0","step":"finished","installed":true}}

# 安装 Nginx

安装前需确保服务器 80 和 443 端口可对外访问,域名已备案并解析到服务器。

yum install -y nginx

systemctl enable nginx

systemctl start nginx

下载 nginx 配置文件

wget -P /etc/ngnix/conf.d  https://rxbill-docs.childsay.com/rxbill.conf

修改域名,请把 www.nideshop.com 替换成你的域名

sed -i "s/server_name .*/server_name www.nideshop.com;/" /etc/ngnix/conf.d/rxbill.conf

文档出现 www.nideshop.com 的地方都需要替换成的你域名。

重启 nginx

systemctl restart nginx

验证域名访问结果

curl http://www.nideshop.com/api/install/status

# 配置 HTTPS

由于微信小程序线上需要 HTTPS 访问接口,这里使用 acme.sh 配置。

安装 acme.sh

curl https://get.acme.sh | sh

签发 HTTPS 证书

acme.sh --issue -d www.nideshop.com --nginx

复制证书到 nginx 跟目录

acme.sh --install-cert -d www.nideshop.com \
--key-file       /etc/nginx/rxbill-key.pem  \
--fullchain-file /etc/nginx/rxbill-fullchain.pem \
--reloadcmd     "service nginx force-reload"

验证 HTTPS 访问结果

curl https://www.nideshop.com/api/install/status

# 安装程序

浏览器访问 https://www.nideshop.com/install 进行安装程序和初始化小程序配置。