方案核心背景
服务器80端口已被博客占用,需通过「1Panel可视化管理+子域名反向代理」实现TradingAgents与博客共存,无需手动修改复杂Nginx配置,操作高效且稳定。
一、方案整体逻辑(示意图)
访问链路说明
用户访问子域名 ta.domain.com(走80端口);
宿主机Nginx(由1Panel管理)接收请求,通过反向代理转发至 127.0.0.1:8080;
该端口对应Docker内的Nginx服务,进一步将请求代理至TradingAgents前端容器(frontend);
前端容器通过接口请求后端容器(backend),完成服务响应。
(同时,用户访问主域名仍指向博客服务,二者共用80端口,互不干扰)
核心原理
通过子域名 ta.domain.com 区分流量,1Panel自动生成反向代理规则,将子域名请求转发至Docker Nginx映射的8080端口,与博客共用宿主机80端口,互不干扰。
二、前置准备(已完成)
TradingAgents已通过Docker Compose部署,Docker Nginx映射宿主机端口为 8080(容器内保持80端口)。
服务器已安装1Panel面板,且能正常管理宿主机Nginx。
已解析子域名 ta.domain.com 至服务器公网IP(A记录解析)。
三、1Panel操作步骤(核心)
步骤1:新建静态网站(绑定子域名)
登录1Panel面板 → 进入「网站」模块 → 点击「新建网站」。
配置网站基础信息: - 网站类型:选择「静态网站」。 - 域名:填写 ta.domain.com(已解析的子域名)。 - 其他默认(无需设置网站目录,因是反向代理场景)。
点击「确认」,完成网站创建。
步骤2:配置反向代理(指向Docker Nginx)
进入刚创建的 ta.domain.com 网站详情页 → 切换至「反向代理」标签。
点击「添加反向代理」,配置如下: - 代理名称:自定义(如「TradingAgents-Docker」)。 - 目标地址:127.0.0.1:8080(Docker Nginx映射的宿主机端口)。 - 代理路径:默认 /(全部请求转发)。 - 其他默认,点击「保存」。
步骤3:测试访问
浏览器输入 http://ta.domain.com,能正常加载TradingAgents页面,且访问主域名仍能打开博客,说明配置生效。
四、常见问题排查
子域名无法访问:检查域名解析是否生效(ping ta.domain.com验证)、服务器安全组是否放行80端口。
反向代理502报错:确认Docker Nginx容器已启动(docker ps | grep nginx),且8080端口未被占用。
接口请求失败:检查Docker内frontend与backend容器是否在同一网络,确保接口路径与VITE_API_BASE_URL配置一致。
五、方案优势
无需手动编写Nginx配置,1Panel可视化操作,降低出错概率。
子域名+反向代理模式,不占用80端口,与博客完美共存。
后续可通过1Panel一键管理HTTPS、监控服务,维护成本低。