You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dokku子域名应用错误指向其他应用域名问题求助

Dokku多域名应用路由问题排查指引

1. 修正全局域名绑定冲突

从你的dokku domains:report输出可见,两个应用都继承了全局域名bbb.com,这会导致Nginx虚拟主机规则混乱:

  • 先清除全局域名配置:
    dokku domains:clear-global
    
  • 仅给需要绑定bbb.com的应用单独添加域名:
    dokku domains:add newapp bbb.com
    
  • 再次确认域名配置:
    dokku domains:report
    
    确保aaa的vhosts仅为aaa.com,newapp的vhosts为newapp.bbb.com和bbb.com。

2. 检查Nginx虚拟主机配置

Dokku会自动生成Nginx配置文件,直接查看配置确认路由规则:

  • 列出所有启用的Nginx站点配置:
    ls /etc/nginx/sites-enabled/
    
  • 查看aaa应用的Nginx配置:
    cat /etc/nginx/sites-enabled/aaa.conf
    
  • 查看newapp应用的Nginx配置:
    cat /etc/nginx/sites-enabled/newapp.conf
    
    重点核对每个配置中的server_name字段,确保:
    • aaa.conf的server_name仅包含aaa.com
    • newapp.conf的server_name包含newapp.bbb.com和bbb.com

3. 调整默认虚拟主机优先级

Dokku按应用字典序生成Nginx配置,aaa排在newapp前面,会成为Nginx的默认虚拟主机(当请求域名不匹配任何配置时,会返回默认主机的内容)。修改默认主机:

  • 设置newapp为默认虚拟主机:
    dokku nginx:set newapp default-site true
    

4. 验证Nginx配置并重启

修改配置后,必须验证配置正确性并重启Nginx:

  • 测试Nginx配置语法:
    nginx -t
    
  • 重启Nginx服务:
    service nginx restart
    

5. 清除Cloudflare缓存

Cloudflare的缓存可能导致旧路由规则生效,手动清除缓存:

  • 登录Cloudflare后台,进入对应域名的「缓存」页面,选择「清除全部缓存」

6. 直接验证路由规则

用curl绕过CDN,直接向VPS IP发送请求并指定Host头,确认Nginx路由正确:

  • 测试newapp.bbb.com:
    curl -H "Host: newapp.bbb.com" http://<vps-ip>/endpoint
    
  • 测试bbb.com:
    curl -H "Host: bbb.com" http://<vps-ip>
    
  • 测试aaa.com:
    curl -H "Host: aaa.com" http://<vps-ip>
    
    以上请求应分别返回对应应用的内容,而非统一返回aaa.com的内容。

内容的提问来源于stack exchange,提问作者Terry T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:01:13