spring: # Gateway 配置 cloud: gateway: # 路由配置 routes: # ========== v1 版本路由(新规范)========== # 管理后台 - v1 - 会员服务 - id: admin-v1-member-service uri: lb://xdz-user # 使用 Nacos 服务发现,服务名:xdz-user predicates: - Path=/api/v1/admin/member/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/member/... # 管理后台 - v1 - 车辆服务 - id: admin-v1-vehicle-service uri: lb://xdz-vehicle # 使用 Nacos 服务发现,服务名:xdz-vehicle predicates: - Path=/api/v1/admin/vehicle/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/vehicle/... # 管理后台 - v1 - 服务管理(通过业务服务代理) - id: admin-v1-service-management uri: lb://xdz-business # 使用 Nacos 服务发现,服务名:xdz-business predicates: - Path=/api/v1/admin/service/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/service/... # 管理后台 - v1 - 权限服务(角色)- 转发到 user-server # 注意:此路由必须在系统服务路由之前,确保更具体的路径优先匹配 - id: admin-v1-role-service uri: lb://xdz-user # 使用 Nacos 服务发现,服务名:xdz-user predicates: - Path=/api/v1/admin/system/role/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/system/role/... order: -1 # 设置更小的数字,确保在系统服务路由(order: 0)之前匹配 # 管理后台 - v1 - 权限服务(菜单)- 转发到 user-server - id: admin-v1-menu-service uri: lb://xdz-user # 使用 Nacos 服务发现,服务名:xdz-user predicates: - Path=/api/v1/admin/system/menu/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/system/menu/... order: -1 # 设置更小的数字,确保在系统服务路由(order: 0)之前匹配 # 管理后台 - v1 - 权限服务(权限)- 转发到 user-server - id: admin-v1-permission-service uri: lb://xdz-user # 使用 Nacos 服务发现,服务名:xdz-user predicates: - Path=/api/v1/admin/system/permission/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/system/permission/... order: -1 # 设置更小的数字,确保在系统服务路由(order: 0)之前匹配 # 管理后台 - v1 - 系统服务(其他系统接口) - id: admin-v1-system-service uri: lb://xdz-business # 使用 Nacos 服务发现,服务名:xdz-business predicates: - Path=/api/v1/admin/system/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/system/... order: 0 # 默认优先级,低于权限服务路由 # 管理后台 - v1 - 默认路由 - id: admin-v1-default-service uri: lb://xdz-business # 使用 Nacos 服务发现,服务名:xdz-business predicates: - Path=/api/v1/admin/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /admin/... # APP端 - v1 - 会员服务 - id: app-v1-member-service uri: lb://xdz-user # 使用 Nacos 服务发现,服务名:xdz-user predicates: - Path=/api/v1/app/member/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /app/member/... # APP端 - v1 - 社区服务 - id: app-v1-community-service uri: lb://xdz-business # 使用 Nacos 服务发现,服务名:xdz-business predicates: - Path=/api/v1/app/community/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /app/community/... # APP端 - v1 - 默认路由 - id: app-v1-default-service uri: lb://xdz-business # 使用 Nacos 服务发现,服务名:xdz-business predicates: - Path=/api/v1/app/** filters: - StripPrefix=2 # 去掉 /api/v1,转发 /app/... # ========== 前端开发服务器路由 ========== # 前端页面和静态资源(所有非 API 请求) # 注意:连接服务器时,前端应该部署在服务器上,这里可以注释掉或配置为服务器前端地址 # - id: frontend-dev-server # uri: http://${SERVER_FRONTEND_HOST:服务器前端地址}:${SERVER_FRONTEND_PORT:8082} # predicates: # - Path=/** # filters: # - StripPrefix=0 # 不删除前缀,直接转发 # order: 9999 # 全局 CORS 配置 globalcors: cors-configurations: '[/**]': # 注意:当 allowCredentials=true 时,不能使用 "*",必须明确列出允许的源 # 或者使用 allowedOriginPatterns 支持通配符 allowedOriginPatterns: - "http://localhost:*" # 支持所有 localhost 端口 - "http://127.0.0.1:*" # 支持所有 127.0.0.1 端口 - "${SERVER_FRONTEND_ORIGIN:http://服务器前端地址:*}" # 服务器前端地址(支持环境变量) allowedMethods: - GET - POST - PUT - DELETE - OPTIONS - PATCH allowedHeaders: "*" exposedHeaders: - Authorization - Content-Type allowCredentials: true maxAge: 3600 # 预检请求缓存时间(秒) # Nacos 配置(连接服务器时启用服务发现) nacos: server-addr: 119.45.95.228:10030 # 本地 Nacos 服务器地址 # 方式一:用户名密码认证(当前使用) username: nacos # Nacos 账号 password: Nacos@202612 # Nacos 密码 # 方式二:AK/SK 认证(如果服务器要求使用 AK/SK,取消下面注释并注释掉上面的 username 和 password) # access-key: 你的AccessKey # secret-key: 你的SecretKey discovery: enabled: true # 启用服务发现 namespace: dev # 命名空间(开发环境) group: DEFAULT_GROUP config: enabled: false # Gateway 不使用配置中心 import-check: enabled: false # 日志配置(开发环境使用 DEBUG 级别,便于调试) logging: level: org.springframework.cloud.gateway: DEBUG com.xindazhou.gateway: DEBUG