🔗
VPS

重复的任务浪费无数时间——从自动发布博客到社交媒体,到同步线索到 CRM,再到定时抓取网站数据。如果你用过 Zapier 或 Make.com,你知道随着工作流增多,月账单会迅速攀升。n8n 是开源自动化平台,可以自托管在你自己的 VPS 上——这意味着你控制数据、避免按任务计费、工作流数量无限制。本指南将引导你使用 Docker 或 Node.js 在 Linux VPS 上安装 n8n,设置 Nginx 反向代理和 HTTPS,配置安全认证,并确保工作流数据在更新后仍然存在。

简而言之:n8n 是开源工作流自动化平台,可以自托管在 VPS 上,避免按任务收费、确保数据隐私、支持无限工作流。最快的设置方式是使用 Docker;正确配置环境变量 N8N_HOST 和 WEBHOOK_URL 以避免 webhook 失败;使用 Nginx 作为反向代理配合 Let's Encrypt SSL;启用内置用户认证保证安全。

什么是 n8n 以及为什么要自托管

n8n(发音为"n-eight-n")是开源工作流自动化平台,类似于 Zapier 和 Make.com——但有关键区别:它运行在你自己的硬件上。"自托管"意味着 n8n 服务器运行在你的 VPS 上,而不是依赖第三方 SaaS 提供商。

自托管 n8n 的主要优势:

实际应用案例

在设置前,看看 n8n 的实际应用场景:

前置要求

在 VPS 上安装 n8n 需要:

使用 Docker 安装 n8n(推荐)

Docker 消除了依赖问题——没有 Node.js 版本冲突,没有系统库冲突。这是最快的 n8n 部署方式。

第 1 步:安装 Docker 和 Docker Compose

如果未安装 Docker,运行:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker

验证安装:

docker --version
docker run hello-world

第 2 步:创建目录和命名卷

创建存储 n8n 配置和工作流数据的目录:

mkdir -p ~/n8n
cd ~/n8n
docker volume create n8n_data

命名卷在容器删除后仍然保留——对生产环境至关重要。

第 3 步:创建 docker-compose.yml

创建 Docker Compose 文件:

nano docker-compose.yml

粘贴以下内容:

version: '3.8'
services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=automation.yourcompany.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://automation.yourcompany.com/
      - N8N_USER_MANAGEMENT_DISABLED=false
    volumes:
      - n8n_data:/home/node/.n8n
    restart: unless-stopped

volumes:
  n8n_data:

注意:N8N_HOST 和 WEBHOOK_URL 是最常见的设置错误。如果这些不正确或不匹配,webhook 会无声地失败——外部集成无法触发工作流。确保两个值完全匹配你的域名并使用 HTTPS。

用你的实际值替换占位符:

第 4 步:使用 Docker 启动 n8n

docker-compose up -d

检查容器是否运行:

docker ps
docker logs n8n

当看到日志中的 "Server started successfully" 时,n8n 已准备好——尽管从互联网还无法访问。我们接下来用 Nginx 解决这个问题。

设置 Nginx 反向代理和 HTTPS

n8n 仅监听 localhost:5678。要用 HTTPS 通过你的域名暴露它(webhook 需要),我们使用 Nginx 作为反向代理。

第 1 步:安装 Nginx 和 Certbot

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

第 2 步:创建 Nginx 配置

sudo nano /etc/nginx/sites-available/n8n

粘贴以下内容:

server {
    listen 80;
    server_name automation.yourcompany.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }
}

用你的实际域名替换 automation.yourcompany.com

第 3 步:启用配置并测试

sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

第 4 步:使用 Let's Encrypt 安装 SSL

sudo certbot --nginx -d automation.yourcompany.com

按照提示进行,接受条款,允许 Certbot 自动修改 Nginx 配置。Certbot 将自动重定向所有 HTTP 流量到 HTTPS 并设置证书自动续期。

配置用户认证

一旦 n8n 可通过 HTTPS 访问,首次登录时系统会提示创建管理员账户。这是主要安全关卡——安全保存这些凭证,因为每次访问 n8n 仪表板都需要用到。

小贴士:为了额外安全,在 n8n 用户设置中启用双因素认证(2FA),或在 Nginx 配置的 location 块中添加 .htpasswd 基本认证。这增加第二层防御。

确保数据持久性和备份

所有工作流定义、凭证和执行历史都存储在容器内的 ~/.n8n 目录。如果没有卷删除容器,所有数据都会丢失。我们已挂载命名卷,但添加显式备份很明智。

验证卷持久性

docker volume inspect n8n_data

设置自动备份

创建 cron 任务每天备份 n8n 数据:

crontab -e

添加此行:

0 2 * * * tar -czf ~/backups/n8n-$(date +\%Y\%m\%d).tar.gz ~/n8n/

这每天凌晨 2 点备份整个 ~/n8n 目录。首先创建备份目录:

mkdir -p ~/backups

生产环境注意事项

对于 24/7 运行的关键工作流,额外的加强步骤确保稳定性:

总结

现在你有一个完全功能的自托管 n8n 实例运行在 VPS 上。与 SaaS 平台不同,没有每个工作流的费用——你的 VPS 投资覆盖无限自动化。所有工作流数据和凭证保留在服务器上,给你完全控制和隐私。

后续步骤:登录 n8n 仪表板(https://automation.yourcompany.com),创建你的第一个简单工作流(例如 HTTP 触发器 → 发送 Slack 消息),并端到端测试。熟悉后,构建涉及多个 API、定时任务和条件逻辑的更复杂自动化。可能性无限。

常见问题 (FAQ)

n8n 与 Zapier 或 Make.com 有什么不同?

Zapier 和 Make 按任务执行或月度使用计费。n8n 是开源自托管的,部署到 VPS 后工作流可无限运行零成本。你还保有完全数据控制和代码访问权限。

我可以不用 Docker 运行 n8n 吗?

可以,安装 Node.js 18+ 和 npm,然后运行 `npm install -g n8n` 再运行 `n8n start`。不过 Docker 对生产更整洁,因为依赖隔离且更新更简单。

为什么我的 webhook 没有触发?

通常是 N8N_HOST 或 WEBHOOK_URL 配置错误导致。仔细检查两个值是否完全匹配你的域名(如 automation.yourcompany.com)并使用 HTTPS,没有多余空格。查看 Docker 日志:`docker logs n8n`。

n8n 对工作流或凭证数量有限制吗?

没有硬限制——取决于 VPS 资源(RAM、磁盘、CPU)。支持数百个工作流,但许多大型工作流或频繁执行可能需要更多 RAM。如果性能下降,升级 VPS 或跨多个实例分散工作流。

立即开始使用 AsiaGB VPS

AsiaGB VPS 全系列采用 SSD 存储,可选择泰国或新加坡数据中心,并提供完整的 Root 权限,Linux 系统每月低至 500 泰铢起,由泰语技术团队提供支持。

查看 VPS 套餐

查看泰国VPS主机全部套餐 →