Hi guys,
We are experiencing significant issues with our webhook processing setup in n8n
. Despite configuring multiple webhook processors, we’re encountering bottlenecks and performance issues.
Our goal is to pull around 300,000 records from a HubSpot workflow directly into an n8n
webhook. However, we’re facing frequent timeouts, with the subdomains becoming unreachable. Although we can access the server via IP, the webhook URLs remain inaccessible.
Thanks!
Spec
version: '3.8'
services:
rabbitmq:
image: rabbitmq:3-management
environment:
- RABBITMQ_DEFAULT_USER=username
- RABBITMQ_DEFAULT_PASS=*****
ports:
- "5672:5672"
- "15672:15672"
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "status"]
interval: 30s
retries: 3
start_period: 30s
timeout: 10s
networks:
- n8n_network
traefik:
restart: always
image: traefik:v2.5
command:
- "--api.dashboard=true"
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:8081"
- "--entrypoints.dashboard.address=:8082"
ports:
- "8081:8081"
- "8082:8082"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- n8n_network
redis:
image: redis:latest
command: ["redis-server", "--appendonly", "yes"]
deploy:
replicas: 1
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
retries: 3
start_period: 30s
timeout: 10s
networks:
- n8n_network
n8n_editor:
image: n8nio/n8n:1.21.1
depends_on:
redis:
condition: service_healthy
rabbitmq:
condition: service_healthy
environment:
- N8N_ENCRYPTION_KEY=C13fnPiJbk9v1atS
- EXECUTIONS_MODE=queue
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=<hidden>
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=<hidden>
- DB_POSTGRESDB_USER=<hidden>
- DB_POSTGRESDB_PASSWORD=<hidden>
- WEBHOOK_URL=https://n8n-webhook.domain.com
- N8N_HOST=n8n-editor.domain.com
- N8N_PORT=5680
- N8N_DISABLE_PRODUCTION_MAIN_PROCESS=true
ports:
- "5680:5680"
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n_editor.rule=Host(`n8n-editor.domain.com`)"
- "traefik.http.services.n8n_editor.loadbalancer.server.port=5680"
- "traefik.http.routers.n8n_editor.entrypoints=web"
networks:
- n8n_network
n8n_webhook:
image: n8nio/n8n:1.21.1
restart: always
depends_on:
- redis
- rabbitmq
command: webhook
environment:
- N8N_ENCRYPTION_KEY=C13fnPiJbk9v1atS
- EXECUTIONS_MODE=queue
- DB_TYPE=postgresdb
- N8N_HOST=n8n-editor.domain.com
- DB_POSTGRESDB_HOST=<hidden>
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=<hidden>
- DB_POSTGRESDB_USER=<hidden>
- DB_POSTGRESDB_PASSWORD=<hidden>
- WEBHOOK_URL=https://n8n-webhook.domain.com
- N8N_PORT=5681
- QUEUE_MODE=redis
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_DB=1
- RABBITMQ_DEFAULT_USER=username
- RABBITMQ_DEFAULT_PASS=*******
- RABBITMQ_HOST=rabbitmq
- N8N_DISABLE_PRODUCTION_MAIN_PROCESS=true
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n_webhook.rule=Host(`n8n-webhook.domain.com`)"
- "traefik.http.services.n8n_webhook.loadbalancer.server.port=5681"
- "traefik.http.routers.n8n_webhook.entrypoints=web"
- "traefik.http.middlewares.rateLimit.rateLimit.average=1000"
- "traefik.http.middlewares.rateLimit.rateLimit.burst=2000"
- "traefik.http.routers.n8n_webhook.middlewares=rateLimit@docker"
deploy:
replicas: 3
networks:
- n8n_network
n8n_worker:
image: n8nio/n8n:1.21.1
depends_on:
- redis
- rabbitmq
command: worker --concurrency=3
environment:
- N8N_ENCRYPTION_KEY=C13fnPiJbk9v1atS
- EXECUTIONS_MODE=queue
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=<hidden>
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=<hidden>
- DB_POSTGRESDB_USER=<hidden>
- DB_POSTGRESDB_PASSWORD=<hidden>
- QUEUE_MODE=redis
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_DB=1
- RABBITMQ_DEFAULT_USER=username
- RABBITMQ_DEFAULT_PASS=*******
- RABBITMQ_HOST=rabbitmq
deploy:
replicas: 4
networks:
- n8n_network
networks:
n8n_network:
external: true