在 EasyPanel 和 BTCPayServer 中使用 nginx/traefik 时,503 服务暂时不可用?

在 EasyPanel 和 BTCPayServer 中使用 nginx/traefik 时,503 服务暂时不可用?

我在 Debian 12 VPS 上完成这一切。

  • 我可以安装易面板单独并使其在启用 SSL 的情况下工作。

  • 我可以安装比特币支付服务器单独使用本指南让 BTC/XMR 正常工作。

  • 但我无法让他们同时在同一个 VPS 上工作。

我尝试先安装 Easypanel,然后安装 BTCPayServer,但 BTCPayServer 根本没有安装,给我一个错误:

ERROR: for nginx: Bind for 0.0.0.0:443 failed: port is already allocated

现在我走了相反的路,先安装了BTCPayServer,然后再安装了EasyPanel。

现在它正在发挥作用。

但我无法访问Next.js正在运行的应用程序easypaneleasypanel.mysite.com由于某种原因,我什至无法设置启用的自定义 URL 。

我认为这是由于 BTCPayServer 使用的 Nginx 或 EasyPanel 使用的 Traefik 造成的。

503 Service Temporarily Unavailable目前,当我尝试打开在 EasyPanel 上安装的 Next.js 应用程序时,出现此问题。

我该如何解决这个问题?

Easypanel 有一个关于此的文档。所以我在以下人员的帮助下做了它所说的困惑:

/etc/easypanel/traefik/config/custom.yaml

# Enable debug logs
log:
  level: DEBUG

# Define the entry points
entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"

# Enable and configure Let's Encrypt
certificatesResolvers:
  myresolver:
    acme:
      email: "[email protected]"
      storage: "/etc/traefik/acme/acme.json"
      httpChallenge:
        entryPoint: "web"

# Configure the API
api:
  insecure: true
  dashboard: true

# Define the global configuration
global:
  checkNewVersion: true
  sendAnonymousUsage: true

# Configure access to Docker
providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false

# Configure the entry points for the services
http:
  routers:
    btcpayserver-router:
      rule: "Host(`btcpay.mysite.com`)"
      service: "btcpayserver-service"
      entryPoints:
        - "websecure"
    easypanel-router:
      rule: "Host(`easypanel.mysite.com`)"
      service: "easypanel-service"
      entryPoints:
        - "websecure"

  services:
    btcpayserver-service:
      loadBalancer:
        servers:
          - url: "http://btcpayserver-docker:80"
    easypanel-service:
      loadBalancer:
        servers:
          - url: "http://easypanel:80"

但我不知道http://btcpayserver-docker:80应该用什么来代替。

当我跑步时,docker ps --format "table {{.ID}}\t{{.Names}}"我得到了这个:

CONTAINER ID   NAMES
969e4c50ec21   easypanel.1.vzayltvbta10oaqc3wpnztkq2
37e61e15eab5   sinister-kings_nextjs-app.1.lym2ck5oa18gdtfr3lcirz9rf
7999d7177605   letsencrypt-nginx-proxy-companion
24691446a0bd   nginx-gen
d295cc6dbcd3   btcpayserver_monero_wallet
9f2ed203c36d   generated_nbxplorer_1
b9b8b4463c3d   btcpayserver_bitcoind
f6337df09401   generated_btcpayserver_1
696ff12c318d   tor-gen
aa89e0b619b2   generated_postgres_1
fe8d006707dd   nginx
11cf23a5363d   btcpayserver_monerod
f7d42ade4300   tor

btcpayserver我应该在自定义 traefik 配置中使用哪一个?这个配置就是我所需要的吗?

我知道我必须使用反向代理并让其中一个端口通过其他端口,但我对如何使其工作感到困惑?

答案1

快速浏览一下您发布的说明,btcpayserver假设它是唯一正在运行的 Web 服务,并且默认使用会与 EasyPanel 冲突的端口(即 80、443、8080),这也假设它是唯一的 Web 服务在服务器上运行。由于这些假设,您无法使用这两种服务的默认设置,并且需要“入门”文档中未包含的其他配置才能协同工作。

我的第一个建议是btcpayserver使用 EasyPanel 安装,因为它只是 Docker 镜像的集合,但btcpayserver设计的方式可能并不那么容易。也许可以向开发人员提交请求,btcpayserver看看他们是否会添加 EasyPanel 安装选项,或者您可以自己开发它并为该项目做出贡献。

我能想到的另一个选择是调整 EasyPanel 的所有配置端口或btcpayserver使其不相互冲突。具备一些基本的 Docker 网络知识应该是可行的。如果没有这两种服务的经验,我无法评论这项任务有多么困难。

我想到的最后一个选择(可能也是最简单的选择)是在两个单独的服务器上运行这两个服务。您还可以使用虚拟化来实现相同的结果。

相关内容