跳到主要内容

使用 Nginx 和 SSL 部署 Langflow

在基于 Linux 的服务器上部署 Langflow,使用 Nginx 作为反向代理,使用 Let's Encrypt 获取 SSL 证书,并使用 Certbot 进行自动化证书管理。

此设置会加密用户与 Langflow 服务器之间的所有通信。SSL 证书确保敏感数据受到保护,防止窃听和篡改,而通过 Certbot 进行的自动证书管理消除了手动配置 SSL 的复杂性。

先决条件​

  • 一台具有双核 CPU 和至少 2 GB RAM 的 Ubuntu 或基于 Debian 的 Linux 服务器 本示例使用 Digital Ocean cloud 进行托管。您的部署可能会有所不同。
  • 一个具有外部 DNS 管理访问权限的域名
  • 一个已配置为将域名指向服务器外部 IP 地址的 DNS 记录 例如,如果您的服务器 IP 是 203.0.113.1,请按如下方式配置您的 DNS:

    _10
    Type: A
    _10
    Name: langflow.example.com
    _10
    Value: 203.0.113.1

使用 SSH 连接到您的服务器​

  1. 创建一个 SSH 密钥以远程连接到您的服务器。 例如:


    _10
    ssh-keygen -t ed25519 -C "DANA@EXAMPLE.COM"

    将 DANA@EXAMPLE.COM 替换为您想要与该 SSH 密钥关联的电子邮件地址。

  2. 在终端中,按照说明创建您的 SSH 密钥对。 这将同时创建私钥和公钥。 要从终端复制公钥,请输入以下命令:


    _10
    cat ~/Downloads/host-lf.pub | pbcopy

  3. 在您的服务器中,添加您在上一步中复制的 SSH 密钥。 例如,如果您使用的是 Digital Ocean 云服务器,请在创建服务器时或通过 Digital Ocean 控制面板添加此 SSH 密钥。

  4. 要使用 SSH 连接到您的服务器,请输入以下命令。


    _10
    ssh -i PATH_TO_PRIVATE_KEY/PRIVATE_KEY_NAME root@SERVER_IP_ADDRESS

    替换以下内容:

    • PATH_TO_PRIVATE_KEY/PRIVATE_KEY_NAME:与您添加到服务器的公钥匹配的私有 SSH 密钥文件的路径
    • SERVER_IP_ADDRESS:您服务器's 的 IP 地址
  5. 当提示输入密钥指纹时,输入 yes。 终端输出将指示连接是成功还是失败。 连接到 Digital Ocean 云服务器后返回以下响应。


    _10
    System information as of Wed Oct 8 21:40:43 UTC 2025
    _10
    _10
    System load: 0.02 Processes: 103
    _10
    Usage of /: 4.1% of 47.35GB Users logged in: 1
    _10
    Memory usage: 10% IPv4 address for eth0: 165.227.176.236
    _10
    Swap usage: 0% IPv4 address for eth0: 10.17.0.5

在您的服务器上安装 Langflow​

要在您的服务器上安装 Langflow,请执行以下操作:

  1. 更新系统包。


    _10
    sudo apt update && sudo apt upgrade -y

  2. 安装 Python 和 pip。


    _10
    sudo apt install python3 python3-pip python3-venv -y

  3. 安装 uv 以管理 Python 包。 Langflow 建议使用 uv 以获得更快的安装速度。


    _10
    pip install uv

  4. 为 Langflow 创建虚拟环境。


    _10
    uv venv langflow-venv
    _10
    source langflow-venv/bin/activate

  5. 使用 uv 安装 Langflow。


    _10
    uv pip install langflow

  6. (可选)启动 Langflow。


    _10
    uv run langflow run --host 127.0.0.1 --port 7860 &

    通过您的 http://YOUR_PUBLIC_IP:7860 测试访问。 由于 Langflow 运行在 localhost 上,您应该无法成功访问。 在接下来的步骤中,您将安装 Nginx 作为反向代理来处理外部访问,并安装 Certbot 来配置 SSL 以实现安全的 HTTPS 访问。

安装 Nginx​

Nginx 是一个反向代理,它接收外部请求并将其转发到您的 Langflow 服务器。除了 SSL 终端外,Nginx 还包含负载均衡和安全功能。有关更多信息,请参阅 Nginx 文档。

  1. 在您的服务器上安装 Nginx。


    _10
    sudo apt install nginx -y

  2. 在您的服务器上启动并启用 Nginx。


    _10
    sudo systemctl start nginx
    _10
    sudo systemctl enable nginx

  3. 创建 Nginx 配置文件。 将 DOMAIN_NAME 替换为您实际的域名,例如 langflow.example.com。


    _10
    sudo nano /etc/nginx/sites-available/DOMAIN_NAME

  4. 将以下内容粘贴到您在 /etc/nginx/sites-available/DOMAIN_NAME 创建的配置文件中。

    将 DOMAIN_NAME 替换为您实际的域名,例如 langflow.example.com。


    _29
    server {
    _29
    listen 80;
    _29
    server_name DOMAIN_NAME;
    _29
    _29
    # 增加客户端请求体大小以支持文件上传
    _29
    client_max_body_size 100M;
    _29
    _29
    location / {
    _29
    proxy_pass http://127.0.0.1:7860/;
    _29
    proxy_set_header Host $host;
    _29
    proxy_set_header X-Real-IP $remote_addr;
    _29
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    _29
    proxy_set_header X-Forwarded-Proto $scheme;
    _29
    _29
    # 为 Langflow 提供 WebSocket 支持
    _29
    proxy_http_version 1.1;
    _29
    proxy_set_header Upgrade $http_upgrade;
    _29
    proxy_set_header Connection "upgrade";
    _29
    _29
    # 为运行时间较长的流设置超时
    _29
    proxy_connect_timeout 60s;
    _29
    proxy_send_timeout 60s;
    _29
    proxy_read_timeout 300s;
    _29
    _29
    # 缓冲设置
    _29
    proxy_buffering off;
    _29
    proxy_request_buffering off;
    _29
    }
    _29
    }

    此配置在 80 端口上监听标准 HTTP。当您在稍后的步骤中安装 Certbot 时,它将修改此配置以添加 443 端口用于 HTTPS。

  5. 要启用您的站点配置,请在 /sites-available 和 /sites-enabled 目录之间创建一个符号链接。/sites-available 存储所有站点配置,而 /sites-enabled 仅存储 Nginx 读取的活动配置。创建此符号链接即可开启该配置。


    _10
    sudo ln -s /etc/nginx/sites-available/DOMAIN_NAME /etc/nginx/sites-enabled/DOMAIN_NAME

  6. 检查 Nginx 配置文件的语法。


    _10
    sudo nginx -t

  7. 重启 Nginx。


    _10
    sudo systemctl restart nginx

安装 Certbot 并获取 SSL 证书​

虽然 Nginx 处理加密和解密流量中的 SSL 终止,但 Certbot 会自动从 Let's Encrypt 获取 SSL 证书,并配置 Nginx 使用它们。

Let's Encrypt 推荐使用 Certbot 客户端进行自动化证书管理。有关更多信息,请参阅 Certbot 文档。

在您的服务器上安装 Certbot 客户端以管理证书,并安装 python3-certbot-nginx 插件以允许 Certbot 修改服务器的 Nginx 配置。

  1. 安装 Certbot 和 python3-certbot-nginx 插件。


    _10
    sudo apt install certbot python3-certbot-nginx -y

  2. 从 Let's Encrypt 获取 DOMAIN_NAME 的 SSL 证书。


    _10
    sudo certbot --nginx -d DOMAIN_NAME

    此结果表示 Certbot 成功了。


    _10
    Successfully received certificate.
    _10
    Certificate is saved at: /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem
    _10
    Key is saved at: /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem

    使用 --nginx 时,Certbot 会自动将路径作为 ssl_certificate 和 ssl_certificate_key 注入到您的 Nginx 配置中。

  3. 从虚拟环境启动 Langflow。

    a. 激活虚拟环境。


    _10
    source langflow-venv/bin/activate

    b. 在后台启动 Langflow。


    _10
    uv run langflow run --host 127.0.0.1 --port 7860 &

  4. 要测试部署,请在浏览器中导航到 https://DOMAIN_NAME。

  5. 验证 SSL 证书是否正常工作。确保 URL 是 https://,而不是 http://。 您的浏览器地址栏应显示一个 锁 图标。 点击 锁 图标可查看 SSL 证书详情。

另请参阅​

Search