Khi chạy n8n bằng Docker Compose, bạn có thể gặp lỗi:
Nguyên nhân
Lỗi này xảy ra khi:
-
Bạn đang chạy n8n phía sau reverse proxy (Nginx, Traefik, Cloudflare…)
-
Header X-Forwarded-For đã được gửi từ proxy
-
Nhưng Express trong n8n không trust proxy
Điều này khiến express-rate-limit không xác định đúng IP client → báo lỗi
Cách khắc phục
Cách 1: Bật trust proxy trong n8n (Khuyến nghị)
Bạn chỉ cần thêm biến môi trường vào Docker Compose:
- N8N_TRUST_PROXY=true
Ví dụ docker-compose.yml hoàn chỉnh
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_TRUST_PROXY=true
- N8N_HOST=your-domain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://your-domain.com/
volumes:
- ./n8n_data:/home/node/.n8n
Sau đó restart container
docker compose up -d
Cách 2: Nếu dùng Nginx reverse proxy
Đảm bảo config Nginx có header chuẩn:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
Cách 3: Nếu dùng Cloudflare
-
Bật Proxy (orange cloud)
-
Không strip header X-Forwarded-For
-
Có thể cần thêm:
Lưu ý quan trọng
-
Nếu không dùng reverse proxy → KHÔNG cần bật N8N_TRUST_PROXY
-
Nếu bật sai có thể gây:
-
Sai IP client
-
Sai rate limit
-
Chúc các bạn thành công.