跳到主要内容

使用 Caddy 在远程服务器上部署 Langflow

本指南演示了如何在远程服务器(如云虚拟私有服务器(VPS))上部署 Langflow,并使用 Caddy 作为反向代理来支持 HTTPS。

Caddy 是一个开源的 Web 服务器,具有自动 HTTPS 功能,其配置比 Nginx 更简单。

本指南假设您有一台安装了 DockerDocker Compose 的 Linux 服务器,以及一个指向您服务器 IP 地址的域名。

为什么使用反向代理?

虽然您可以直接在服务器上运行 Langflow 并暴露其端口,但使用 Caddy 作为反向代理具有以下优势:

  • 自动 HTTPS:Caddy 会自动为您处理 SSL/TLS 证书的获取和更新(通过 Let's Encrypt 或 ZeroSSL)。
  • 安全性:它充当外部互联网和您的 Langflow 实例之间的保护层。
  • 简化的端口管理:您可以通过标准的 Web 端口(80 用于 HTTP,443 用于 HTTPS)访问 Langflow,而无需在 URL 中指定 :7860

准备工作

在开始之前,请确保:

  1. 一台 Linux 服务器:具有公共 IP 地址的 VPS(如 DigitalOcean、AWS、GCP 或 Hetzner)。
  2. Docker 和 Docker Compose:安装在您的服务器上。
  3. 一个域名:一个注册好的域名(例如 langflow.example.com)。
  4. DNS 配置:在您的 DNS 提供商处创建一个 A 记录,将您的域名指向服务器的公共 IP 地址。

步骤 1:创建项目目录

连接到您的服务器并为您的 Langflow 部署创建一个新 directory:


_10
mkdir langflow-deployment && cd langflow-deployment

步骤 2:创建 Docker Compose 配置文件

创建一个 docker-compose.yml 文件来运行 Langflow 和 Caddy。


_29
version: "3.8"
_29
_29
services:
_29
langflow:
_29
image: langflowai/langflow:latest
_29
ports:
_29
- "7860:7860"
_29
environment:
_29
- LANGFLOW_HOST=0.0.0.0
_29
- LANGFLOW_PORT=7860
_29
# 如果您需要持久化数据,请取消下面行的注释
_29
# volumes:
_29
# - ./langflow_data:/app/langflow
_29
_29
caddy:
_29
image: caddy:latest
_29
ports:
_29
- "80:80"
_29
- "443:443"
_29
volumes:
_29
- ./Caddyfile:/etc/caddy/Caddyfile
_29
- caddy_data:/data
_29
- caddy_config:/config
_29
depends_on:
_29
- langflow
_29
_29
volumes:
_29
caddy_data:
_29
caddy_config:

  1. 创建一个名为 Caddyfile 的文件:


    _10
    touch Caddyfile && nano Caddyfile

  2. 将以下值添加到 Caddyfile 中,然后保存文件。

    此 Caddyfile 配置 Caddy 监听 80 端口,并将所有发送到 80 端口的传入请求转发到 7860 端口的 Langflow 服务。


    _10
    :80 {
    _10
    reverse_proxy langflow:7860
    _10
    }

  3. 要部署您的服务器,请运行 docker-compose up

    当出现 Welcome to Langflow 消息时,Langflow 正在运行,并且可以在 Docker 网络内部通过 http://0.0.0.0:7860 访问。

  4. 要通过公共互联网访问您的 Langflow 服务器,请导航到您服务器的公共 IP 地址,例如 http://5.161.250.132。 由于尚未启用 HTTPS,此地址使用 HTTP。

  5. 推荐:启用 HTTPS:

    1. 修改您域名的 A 记录以指向您的服务器 IP 地址。例如:


      _10
      Type: A
      _10
      Name: langflow
      _10
      Value: 5.161.250.132 # 设置为您服务器的 IP 地址

    2. 停止您的服务器。

    3. 修改您的 Caddyfile 以包含 443 端口,以便 Caddy 可以将 HTTP(80 端口)和 HTTPS(443 端口)请求转发到 Langflow 服务:


      _10
      :80, :443 {
      _10
      reverse_proxy langflow:7860
      _10
      }

    4. 启动您的服务器。

      当用户访问您的域名时,Caddy 会识别传入流量,并通过安全的加密连接自动将其路由到您的服务器。

  6. 要退出 SSH 会话,请输入 exit

另请参阅

要将您的本地工作流打包到自定义 Docker 镜像中,请参阅容器化 Langflow 应用程序

有关部署 Langflow 的逐步指南(包括部署到 fly.ioFlightcontrol.dev),请参阅如何在任何地方托管 Langflow

Search