اتوماسیون و گردش کارتست و صحه‌گذاری شده On-Premises

راهنمای جامع معماری توزیع‌شده نودهای Worker با Redis و بهینه‌سازی بار وب‌هوک در n8n Enterprise

راهنمای مهندسی استقرار کلاستر n8n Enterprise در محیط‌های پرتردد سازمانی، جداسازی سرورهای پردازش وب‌هوک (Webhook Processors) از نودهای کارگری (Worker Nodes) با استفاده از صف‌های حافظه Redis، اتصال به استخر ارتباطات پایگاه داده PgBouncer، رمزنگاری اعتبارسنجی‌ها (Encryption Keys) و لایسنس دائمی Self-Hosted.

دپارتمان تخصصی اتوماسیون فرآیندها و سیستم‌های توزیع‌شده Licentraتیم مهندسی و تضمین پایداری
تاریخ انتشار: ۱۰ اسفند ۱۴۰۴
زمان مطالعه: ۵ دقیقه
حجم مطلب: ۹۱۰ کلمه
اندازه متن:

آیا این راهنمای فنی برای شما مفید و کاربردی بود؟

بازخورد شما مستقیماً به تیم مهندسی نرم‌افزار سازمانی Licentra جهت غنابخشی مستندات منتقل می‌گردد.

راهنمای جامع معماری توزیع‌شده نودهای Worker با Redis و بهینه‌سازی بار وب‌هوک در n8n Enterprise
خلاصه اجرایی و نکات کلیدی این راهنما

این مقاله به عنوان مستند فنی رسمی و راهنمای عملیاتی، نیازمندی‌ها، ساختار دیتابیس، سناریوهای مانیتورینگ و فرآیندهای راه‌اندازی و پایداری را در محیط‌های واقعی مورد تحلیل قرار می‌دهد:

محیط استقرار: شبکه‌های ایزوله On-Premises و دیتاسنترهای Air-Gapped
مخاطبان هدف: مدیران سیستم، کارشناسان دواپس و مهندسان شبکه
لایسنسینگ: دائمی و بدون نیاز به اتصال یا اعتبارسنجی اینترنتی
پشتیبانی: اعتبارسنجی‌شده در لابراتوار فارم‌های عملیاتی Licentra

پلتفرم n8n Enterprise یکی از انعطاف‌پذیرترین و مدرن‌ترین سامانه‌های اتوماسیون گردش کار و یکپارچه‌سازی وب‌سرویس‌ها به شمار می‌رود. برخلاف سامانه‌های سنتی که نیازمند برنامه‌نویسی گسترده برای اتصال APIها هستند، n8n با محیط بصری غنی و صدها نود آماده به تیم‌های فنی اجازه می‌دهد در کمترین زمان ممکن، سناریوهای اتصال CRM، سامانه‌های مالی، درگاه‌های پرداخت، پیام‌رسان‌ها و هوش مصنوعی محلی را متصل سازند.

با این وجود، در سناریوهای پرترافیک سازمانی—مانند دریافت هزاران وب‌هوک همزمان در کمپین‌های بازاریابی یا پردازش لاگ‌های مانیتورینگ شبکه—اجرای n8n در قالب یک کانتینر یا پردازش واحد (Single-Instance Mode) به سرعت موجب اشغال ۱۰۰٪ حافظه پردازنده، سرریز حافظه موقت Node.js و از دست رفتن درخواست‌های حیاتی وب‌هوک می‌گردد. راهکار استاندارد و پیشنهادی، پیاده‌سازی معماری Queue Mode با بهره‌گیری از سرور صف حافظه‌ای Redis و استقرار نودهای توزیع‌شده Worker است. در این مقاله جامع، تمامی گام‌های پیکربندی و تثبیت لایسنس پایدار آفلاین بررسی می‌شود.

کنسول مدیریت گردش کارها و لاگ‌های اجرا در n8n Enterprise
📷 کنسول مدیریت گردش کارها و لاگ‌های اجرا در n8n Enterprise

۱. توپولوژی معماری Queue Mode در n8n Enterprise #

در معماری مقیاس‌پذیر توزیع‌شده، مسئولیت‌ها به چهار بخش مستقل تفکیک می‌شوند:

۱. Main Execution Instance (سرور مدیریت و رابط کاربری): میزبانی محیط بصری توسعه و مدیریت کاربران. این سرور هیچ وظیفه اجرای مستقیمی ندارد.

۲. Webhook Instances (دریافت‌کننده‌های اختصاصی وب‌هوک): کانتینرهای سبک که صرفاً درخواست‌های ورودی پورت وب‌هوک را با کمترین تاخیر (زیر ۱۰ میلی‌ثانیه) دریافت کرده، کد HTTP 200 را بازمی‌گردانند و Payload را داخل صف Redis درج می‌کنند.

۳. Worker Instances (نودهای پردازشی کارگری): کانتینرهایی که در پس‌زمینه جاب‌ها را از صف‌های Redis برداشت کرده، توابع جاوااسکریپت و کدهای پایتون را اجرا نموده و با دیتابیس در ارتباط هستند.

۴. PostgreSQL & Redis Backing Services: بانک اطلاعاتی متمرکز و صف داده‌های درون‌حافظه‌ای.

text
                  ┌─────────────────────────────────────────┐
                  │       Traefik / Nginx Load Balancer     │
                  │             https://n8n.corp.local      │
                  └───────────────────┬─────────────────────┘
                                      │
            ┌─────────────────────────┴─────────────────────────┐
            │ Path: /webhook/*                                  │ Path: / (UI/Admin)
            ▼                                                   ▼
┌───────────────────────┐                           ┌───────────────────────┐
│ Webhook Instance 1&2  │                           │ Main Node (Editor/UI) │
│  Lightweight Receiver │                           │  Workflow Management  │
│     192.168.90.11     │                           │     192.168.90.10     │
└───────────┬───────────┘                           └───────────┬───────────┘
            │                                                   │
            ├─────────────────────────┬─────────────────────────┤
            │ Push Job Payloads       │ Subscribe Executions    │
            ▼                         ▼                         │
┌─────────────────────────────────────────┐                     │
│          Redis Sentinel Cluster         │                     │
│               Port: 6379                │                     │
└───────────────────┬─────────────────────┘                     │
                    │ Pop Jobs for Execution                    │
                    ▼                                           │
┌─────────────────────────────────────────┐                     │
│        Dynamic Worker Pool (N Nodes)    │                     │
│   Worker 1, Worker 2, Worker 3 ...      │                     │
└───────────────────┬─────────────────────┘                     │
                    │ Read/Write Workflows & Execution History  │
                    ▼                                           ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                     PostgreSQL 16 High-Availability                     │
│                       with PgBouncer (Port: 6432)                       │
└─────────────────────────────────────────────────────────────────────────┘

۲. فایل پیکربندی کامل Docker Compose برای استقرار Queue Mode #

نمونه فایل پیکربندی docker-compose.yml استاندارد برای راه‌اندازی این محیط توزیع‌شده:

yaml
version: '3.8'

services:
  redis:
    image: redis:7.2-alpine
    restart: always
    command: redis-server --appendonly yes --requirepass "StrongRedisSecretPass2026!"
    volumes:
      - redis_data:/data
    networks:
      - n8n_cluster

  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_DB: n8n_enterprise
      POSTGRES_USER: n8n_admin
      POSTGRES_PASSWORD: "SuperSecurePostgresPass2026!"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - n8n_cluster

  n8n-main:
    image: n8nio/n8n:latest
    restart: always
    environment:
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis
      - QUEUE_BULL_REDIS_PORT=6379
      - QUEUE_BULL_REDIS_PASSWORD=StrongRedisSecretPass2026!
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n_enterprise
      - DB_POSTGRESDB_USER=n8n_admin
      - DB_POSTGRESDB_PASSWORD=SuperSecurePostgresPass2026!
      - N8N_ENCRYPTION_KEY=d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
      - WEBHOOK_URL=https://n8n.corp.local/
    ports:
      - "5678:5678"
    depends_on:
      - redis
      - postgres
    networks:
      - n8n_cluster

  n8n-webhook:
    image: n8nio/n8n:latest
    restart: always
    command: webhook
    environment:
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis
      - QUEUE_BULL_REDIS_PORT=6379
      - QUEUE_BULL_REDIS_PASSWORD=StrongRedisSecretPass2026!
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n_enterprise
      - DB_POSTGRESDB_USER=n8n_admin
      - DB_POSTGRESDB_PASSWORD=SuperSecurePostgresPass2026!
      - N8N_ENCRYPTION_KEY=d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
    depends_on:
      - redis
      - postgres
    networks:
      - n8n_cluster

  n8n-worker:
    image: n8nio/n8n:latest
    restart: always
    command: worker --concurrency=10
    deploy:
      replicas: 4
    environment:
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis
      - QUEUE_BULL_REDIS_PORT=6379
      - QUEUE_BULL_REDIS_PASSWORD=StrongRedisSecretPass2026!
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n_enterprise
      - DB_POSTGRESDB_USER=n8n_admin
      - DB_POSTGRESDB_PASSWORD=SuperSecurePostgresPass2026!
      - N8N_ENCRYPTION_KEY=d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
    depends_on:
      - redis
      - postgres
    networks:
      - n8n_cluster

networks:
  n8n_cluster:
    driver: bridge

volumes:
  redis_data:
  postgres_data:

۳. تیونینگ حافظه و استراتژی هرس لاگ‌های اجرا (Pruning Execution History) #

یکی از اشتباهات رایج در استقرارهای سازمانی n8n، ذخیره بی‌پایان داده‌های لاگ اجرای ورک‌فلوها در دیتابیس است که باعث تورم حجم جداول execution_entity به صدها گیگابایت در ماه و کندی تمام کوئری‌ها می‌شود.

پارامترهای اجباری هرس خودکار در متغیرهای محیطی:

bash
# نگهداری لاگ‌ها حداکثر به مدت ۷ روز و حداکثر ۵۰۰۰ رکورد اخیر
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000

# ذخیره نکردن دیتای خروجی نودهای میانی برای جاب‌های موفق جهت کاهش ۹۵٪ مصرف رم و دیسک
EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
EXECUTIONS_DATA_SAVE_ON_ERROR=all

۴. امنیت اعتبارسنجی‌ها و توسعه نودهای محلی اختصاصی #

در محیط‌های ایزوله دولتی و بانکی:

  • N8N_ENCRYPTION_KEY: کلید ۳۲ بایتی متقارن است که رمزهای عبور، کلیدهای API و گواهی‌های دیتابیس ذخیره‌شده در n8n با آن به صورت AES-256 رمزنگاری می‌شوند. این مقدار باید در مکانی امن خارج از کانتینر ذخیره شود تا با جابجایی سرور امکان بازگشایی دیتابیس وجود داشته باشد.
  • ایجاد نودهای اختصاصی سازمانی (Custom Nodes): به جای اتصال مستقیم به اینترنت، نودهای سازمانی (مانند اتصال به وب‌سرویس شاهکار، ثبت احوال، و درگاه‌های بانکی داخلی) در قالب پکیج‌های خصوصی محلی در شاخه /home/node/.n8n/custom قرار داده می‌شوند.

۵. لایسنسینگ دائمی n8n Enterprise توسط Licentra #

نسخه عمومی و رایگان n8n فاقد ویژگی‌های حیاتی سازمانی مانند تفکیک پروژه‌ها (Environments & Projects)، مدیریت دسترسی بر پایه نقش (Advanced RBAC)، احراز هویت با SAML / LDAP و لاگ‌های حسابرسی (Audit Logs) است.

مزایای بسته فعال‌سازی پایدار Licentra:

  • فعال‌سازی کلیه قابلیت‌های پلن Enterprise: شامل نامحدود Workflow، نامحدود Worker Node، و تفکیک محیط‌های Dev/Staging/Prod.
  • بدون تماس با سرورهای اکتیویشن ابری (100% Air-Gapped): حذف کامل کالبک‌های تله‌متری سازنده.
  • پایداری دائمی در استقرار کانتینری و کوبرنتیز: فعال‌سازی پایدار حتی پس از Restart یا Scale کردن نودهای کلاستر.

با این معماری توزیع‌شده، پلتفرم اتوماسیون سازمان توانایی پردازش ده‌ها هزار تراکنش در ثانیه را با پایداری کامل و بدون تاخیر دارا خواهد بود.

دپارتمان تخصصی اتوماسیون فرآیندها و سیستم‌های توزیع‌شده Licentra

دپارتمان مهندسی و تضمین پایداری سامانه‌های On-Premises
درخواست مشاوره فنی

تمامی راهنماها و بسته‌های ارائه‌شده توسط مهندسان Licentra در فارم‌های عملیاتی و شبکه‌های ایزوله سازمانی تست و صحه‌گذاری شده‌اند تا پایداری کامل بدون نیاز به اینترنت یا سرویس‌های ابری خارجی تضمین گردد.

مقالات و راهنماهای مرتبط

راهنماهای پیشنهادی بر اساس موضوع، پلتفرم و برچسب‌های مشترک

مشاهده همه مقالات
راهنمای جامع معماری، استقرار کلاستر و امنیت n8n Enterprise Self-Hosted در محیط‌های On-Premises
اتوماسیون سازمانی و گردش‌کار

راهنمای جامع معماری، استقرار کلاستر و امنیت n8n Enterprise Self-Hosted در محیط‌های On-Premises

راهنمای فنی و عملیاتی راه‌اندازی بومی پلتفرم اتوماسیون گردش‌کار n8n Enterprise؛ مقیاس‌پذیری افقی بر بستر Docker و Kubernetes، صف پردازش Redis، اتصال به پایگاه داده PostgreSQL، مدیریت دسترسی‌های RBAC و لایسنس دائمی.

۳ اسفند ۱۴۰۴مطالعه کامل