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

双Docker Compose栈中Nginx实例端口监听与域名访问配置咨询

解决多Docker-Compose栈Nginx域名访问冲突的方案

这是个很常见的多服务栈入口管理问题,我来给你几个实用的解决思路,按推荐程度排序:

1. 用统一反向代理做入口(最推荐)

核心思路是只对外暴露一个反向代理工具(比如Nginx或Nginx Proxy Manager)的443/80端口,由它根据域名把请求转发到不同服务栈里的内部服务。这样既解决了端口冲突,还能统一管理SSL证书,用户体验更流畅。

具体步骤:

  • 调整两个现有服务栈的Nginx配置:把它们的对外端口映射改成内部可访问(比如原来的443:443改成8081:443,444:443改成8082:443),不让它们直接暴露到公网
  • 新建一个单独的反向代理服务,暴露主机的80和443端口
  • 给反向代理配置两条转发规则:
    • 当请求域名是blog.yourdomain.com时,转发到Ghost服务栈的Nginx容器(比如http://ghost-nginx:8081,注意要确保反向代理容器和两个服务栈在同一Docker网络,或者手动连接网络)
    • 当请求域名是analytics.yourdomain.com时,转发到Matomo服务栈的Nginx容器(比如http://matomo-nginx:8082)
  • 所有SSL证书在这个反向代理里统一配置,不用在每个服务栈的Nginx里重复设置

2. 合并两个Docker-Compose服务栈

如果你的服务规模不大,把所有服务合并到同一个docker-compose.yml里也是个简洁的方案,这样只用一个Nginx实例,通过不同的server块处理不同域名的请求。

操作要点:

  • 把两个栈的服务定义合并到一个文件,注意重命名冲突的服务(比如两个Adminer可以改成adminer-ghost和adminer-matomo,避免名称冲突)
  • 修改Nginx配置,添加两个独立的server块:
    # Ghost博客的域名配置
    server {
      listen 443 ssl;
      server_name blog.yourdomain.com;
    
      # 这里放你的SSL证书配置(cert、key路径)
    
      location / {
        proxy_pass http://ghost:2368;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        # 其他必要的proxy头部配置
      }
    }
    
    # Matomo分析的域名配置
    server {
      listen 443 ssl;
      server_name analytics.yourdomain.com;
    
      # 同样的SSL证书配置
      ssl_certificate /path/to/your/cert.pem;
      ssl_certificate_key /path/to/your/key.pem;
    
      location / {
        proxy_pass http://matomo:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
      }
    }
    
  • 这个Nginx只暴露主机的443端口,所有域名请求都走这个入口,自然就解决了冲突问题

3. 端口映射+带端口的域名访问(不推荐)

如果暂时不想调整架构,也可以保留两个Nginx的端口映射(443和444),然后让用户访问Matomo时加:444后缀(比如analytics.yourdomain.com:444)。但这种方式用户体验差,而且管理多个SSL证书也麻烦,只适合临时测试用。

额外注意事项

  • 确保所有需要通信的Docker服务在同一网络中:可以手动创建一个自定义网络,让所有服务栈都加入这个网络,避免跨栈访问失败
  • SSL证书尽量用Let's Encrypt自动签发,配合反向代理工具的话能自动续期,减少维护成本

内容的提问来源于stack exchange,提问作者Matt Welke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:53:16