同一服务器部署Coolify与BTCPayServer时443端口冲突解决求助
解决Coolify与BTCPayServer的443端口冲突问题
因为你已经用Coolify的Traefik作为统一入口(占用443端口),最合理的方案是让BTCPayServer复用这个Traefik反向代理,而不是启动自己的Nginx。以下是具体步骤:
方案一:让BTCPayServer使用Coolify的Traefik作为反向代理(推荐)
- 先停止已启动的BTCPay相关容器:
cd ~/btcpayserver # 进入BTCPay的安装目录,路径可能不同请自行调整 docker-compose down - 修改BTCPay的
docker-compose.yml文件:- 找到并删除/注释掉整个
nginx服务块(无需再用自带Nginx) - 找到
btcpayserver服务,添加Traefik路由标签(替换为你的实际域名):services: btcpayserver: # 保留原有配置,新增以下labels labels: - "traefik.enable=true" - "traefik.http.routers.btcpay.rule=Host(`btcpay.example.com`)" - "traefik.http.routers.btcpay.entrypoints=websecure" - "traefik.http.routers.btcpay.tls.certresolver=letsencrypt" - "traefik.http.services.btcpay.loadbalancer.server.port=49392" # BTCPay默认内部端口 - 让BTCPay加入Coolify的Traefik网络:
先执行docker network ls找到Coolify的Traefik网络(通常是coolify-traefik或traefik_default),然后在docker-compose.yml末尾添加:
同时在networks: coolify-traefik: external: truebtcpayserver服务里加入networks: - coolify-traefik(替换原有的networks配置)
- 找到并删除/注释掉整个
- 重新启动BTCPay:
此时Traefik会自动识别BTCPay服务,将docker-compose up -dbtcpay.example.com的流量转发到BTCPay容器,证书由Traefik统一管理(和Coolify共用同一个证书 resolver)
方案二:修改BTCPay自带Nginx端口,通过Coolify/Traefik转发
如果你不想修改BTCPay的核心配置,可以调整自带Nginx的端口,再让Traefik转发:
- 修改BTCPay的
docker-compose.yml中nginx服务的端口映射:services: nginx: ports: - "8080:80" # 原有80端口可保留或修改 - "4433:443" # 将宿主机443改成未被占用的端口,比如4433 - 在Coolify后台添加反向代理应用:
- 新建一个反向代理应用,域名填
btcpay.example.com - 目标地址填
http://localhost:4433(或者Docker内部nginx容器的IP+443端口) - 开启HTTPS,让Coolify的Traefik自动处理证书
- 新建一个反向代理应用,域名填
- 重启BTCPay容器:
docker-compose up -d
补充说明
你之前看到的nginx进程是Coolify容器内部的,宿主机没有独立的nginx服务,所以不用找宿主机的nginx配置文件。用Traefik统一管理所有域名的反向代理是更简洁的方式,避免端口冲突。
内容的提问来源于stack exchange,提问作者deadcoder0904
相关产品推荐
相关产品推荐

