Fix lỗi X-Forwarded-For trên n8n Docker Compose (Express trust proxy = false)

Views: 42 04/04/2026 19:37
Fix lỗi X-Forwarded-For trên n8n Docker Compose (Express trust proxy = false)

Khi chạy n8n bằng Docker Compose, bạn có thể gặp lỗi:

ValidationError: The 'X-Forwarded-For' header is set but the Express 'trust proxy' setting is false (default).

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:

environment:
- N8N_TRUST_PROXY=true

Ví dụ docker-compose.yml hoàn chỉnh

version: "3"

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 down
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-Forwarded-For $proxy_add_x_forwarded_for;
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:

- N8N_TRUST_PROXY=true

 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. 

n8n docker compose lỗi X-Forwarded-For n8n express trust proxy n8n fix n8n rate limit error n8n reverse proxy docker lỗi express-rate-limit n8n