Gateway Service

统一入口,稳定连接所有 Docker 服务

Nginx Gateway 对外提供 80 / 443 端口,Web、COS、Wallpaper、Rawroom 等容器通过公共 gateway_net 互联,数据库服务保持独立网络隔离。

80/443 统一对外端口
4+ 后端与 Web 服务
3 网络分层
Internet Client

用户流量从公网进入 Gateway。

gateway / Nginx 80 · 443

反向代理统一转发请求,并通过容器名解析上游服务。

webgateway_net · :80
cos-servicegateway_net · :3000
wallpaper-apigateway_net · :3000
rawroom-servergateway_net · :3000
external: true 容器名通信 不依赖容器 IP

部署原则

1

公共网络独立创建

gateway_net 不属于任何 Compose 项目,服务器初始化时单独创建,多个项目共享使用。

2

数据库网络隔离

MySQL 与 Redis 分别使用 mysql-db_net 和 redis-db_net,只有需要访问数据库的后端加入。

3

Gateway 最后启动

先启动 Web 与后端容器,确保上游服务已加入 gateway_net,再启动 Nginx Gateway。

常用命令

# 首次初始化公共网络
docker network inspect gateway_net >/dev/null 2>&1 || \
  docker network create --driver bridge gateway_net

# 推荐启动顺序
docker compose -f db/mysql/docker-compose.yml up -d
docker compose -f db/redis/docker-compose.yml up -d
docker compose -f frontend/web/docker-compose.yml up -d
docker compose -f backend/cos-service/docker-compose.yml up -d
docker compose -f backend/wall-papar-api/docker-compose.yml up -d
docker compose -f backend/rawroom/docker-compose.yml up -d
docker compose -f gateway/docker-compose.yml up -d
# 更新 Gateway
docker compose pull gateway
docker compose up -d gateway

# 更新后检查
docker compose ps
docker compose logs --tail=100 gateway
docker exec gateway nginx -t

# 网络检查
docker network inspect gateway_net
docker exec gateway getent hosts web cos-service wallpaper-api rawroom-server