Skip to content

概述

在同一台物理服务器或云服务器上部署多个系统站点(例如同时部署正式站与测试站,或多个独立商户实例)时,必须针对 Swoole 监听端口Nginx 反代配置 以及 Redis 缓存/队列 进行严格隔离,避免端口占用和缓存数据串扰。


隔离要点清单

Swoole 监听端口隔离

每个站点必须使用独立的内部 HTTP 监听端口。

  • 修改文件config/swoole.php
  • 示例
    • 站点 A:'http' => ['port' => 20698]
    • 站点 B:'http' => ['port' => 20798]

Nginx 反向代理配置

在各站点对应的 Nginx 虚拟主机配置文件中,将代理目标端口修改为对应站点的 Swoole 端口:

nginx
location / {
    proxy_pass http://127.0.0.1:20698;
    # ...
}

location / {
    proxy_pass http://127.0.0.1:20798;
    # ...
}

Redis 数据库与缓存前缀隔离

在各站点根目录下的 .env 文件中,指定不同的 Redis DB 库索引或设置独立的缓存前缀:

ini
# 站点 A 的 .env
[REDIS]
SELECT = 1

[CACHE]
PREFIX = siteA_
TAG_PREFIX = tag_siteA_

# 站点 B 的 .env
[REDIS]
SELECT = 2

[CACHE]
PREFIX = siteB_
TAG_PREFIX = tag_siteB_

Supervisor 守护进程隔离

在 Supervisor 中为每个站点创建独立命名的守护进程(例如 ebaozu_siteAebaozu_siteB),并分别指定对应的项目目录。

承信租多门店租赁商城系统官方文档