跳转到内容

银河版 · 部署指南文档

覆盖 Linux 生产环境的服务器准备、Docker 容器化、Nginx 反向代理和 SSL。单商户版:Docker 拉起中间件与两个 Java 服务,Nginx 做分站点反代和 HTTPS。推荐全程 Docker。文中域名、IP、密码均为示例,上线前必须替换。

组件 版本
JDK(镜像内) 17
MySQL 8.0
Redis 5.0+
Elasticsearch 7.x
XXL-JOB 3.0.0
Docker / Compose 当前稳定版

先在开发机把后端打好包,再放到生产机。服务器需已安装 dockerdocker compose

mall4j-shop
├─ mysql/initdb、mysql/data、mysql/my.cnf
├─ yami-shop-api # 用户端 jar
├─ yami-shop-multishop # 管理端 jar
├─ nginx/conf.d / html / ssl
└─ docker-compose.yml

目录

  • SQL:0schema.sql1mall4j_b2c.sql2area.sql3xxl_job.sqlmysql/initdb(首次 Compose 自动导入)。
  • jar:mvn clean package -DskipTests 后放入
    • yami-shop-api-0.0.1-SNAPSHOT.jar
    • yami-shop-multishop-0.0.1-SNAPSHOT.jar
  • 前端 dist → nginx/html/h5html/pchtml/multishop(管理后台)。
  • 证书 → nginx/ssl

Docker 优先读 Compose 环境变量:

environment:
- MYSQL_HOST=mall4j-mysql
- MYSQL_PORT=3306
- MYSQL_DATABASE=mall4j_b2c
- MYSQL_USERNAME=root
- MYSQL_PASSWORD=<生产密码>
- REDIS_HOST=mall4j-redis
- REDIS_PORT=6379
- REDIS_PASSWORD=<生产密码>
- ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200
- WUKONGIM_ADDRESS=http://mall4j-wukongim:5001

非 Docker 改 application-prod.ymlmysql/data 禁止删除。

Terminal window
cd mall4j-shop
docker compose up -d --build

启动

公网只开放 80/443。中间件端口不暴露。全局搜索模板密码 hn02le.34lkdLKD 并全部替换。

配置 用途
b2c-api.conf 用户端 API,反代 :8112
b2c-multishop.conf 管理后台静态 + /apis:8113
b2c-h5.conf H5,root html/h5,必须 HTTPS
b2c-pc.conf PC 商城
b2c-im.conf / b2c-minio.conf / xxl-job.conf IM、对象存储、任务

80 跳 443,TLS 1.2/1.3。管理端示例:

server {
listen 80;
server_name b2c-multishop.mall4j.com;
location / { return 301 https://$host$request_uri; }
}
server {
listen 443 ssl http2;
server_name b2c-multishop.mall4j.com;
ssl_certificate ssl/your-cert.pem;
ssl_certificate_key ssl/your-cert.key;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
proxy_pass http://mall4j-pro-vs;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /apis {
rewrite ^/apis/(.*)$ /$1 break;
proxy_pass http://mall4j-pro-multishop:8113;
proxy_cookie_path / "/; httponly; secure; SameSite=Lax";
}
location /apis/doc.html { return 404; }
}

H5/PC 使用 try_files $uri $uri/ /;。Docker 中 html 对应 ./nginx/html:/usr/share/nginx/html

uni-app:Node ≥ 18.12,pnpm.env.production 后发行 H5。PC/管理后台 build 后放入对应 html 目录。小程序配置 HTTPS 合法域名。

Terminal window
java -jar -Xmx1024m -Dspring.profiles.active=prod yami-shop-api-0.0.1-SNAPSHOT.jar &
java -jar -Xmx512m -Dspring.profiles.active=prod yami-shop-multishop-0.0.1-SNAPSHOT.jar &

Nginx proxy_pass 改为内网 IP;XXL-JOB 单独部署。