Cài đặt n8n bằng Docker trên máy chủ Debian chạy trên Google Compute Engine (GCE). Cấu hình Nginx reverse proxy với HTTPS (Let's Encrypt). Fix lỗi "Connection lost every 1 second" do WebSocket không hoạt động.
Chạy container n8n với đúng biến môi trường:
bash
CopyEdit
docker run -it --rm \
--name n8n \
-e N8N_HOST=0.0.0.0 \
-e N8N_PORT=5678 \
-e N8N_PROTOCOL=https \
-e WEBHOOK_URL=https://n8n2.tuyentech.pro.vn/ \
-p 5678:5678 \
n8nio/n8n
⚠️ Nếu bạn chưa cài Docker:
bash
sudo apt update && sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
Truy cập VPC > Firewall Rules:
Mở port 443, 80 (HTTPS, HTTP)
Mở port 5678 (Docker expose, dùng cho test trực tiếp)
bash
CopyEdit
/etc/nginx/sites-available/n8n.conf
nginx
server {
server_name n8n2.tuyentech.pro.vn;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/n8n2.tuyentech.pro.vn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n2.tuyentech.pro.vn/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
# WebSocket support
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Required headers
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;
# Disable buffering
proxy_buffering off;
chunked_transfer_encoding off;
proxy_request_buffering off;
proxy_cache off;
}
}
server {
listen 80;
server_name n8n2.tuyentech.pro.vn;
return 301 https://$host$request_uri;
}
bash
# Tạo symbolic link nếu chưa có
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/n8n.conf
# Kiểm tra cấu hình Nginx
sudo nginx -t
# Tải lại Nginx
sudo systemctl reload nginx
Lỗi này thường do một trong các nguyên nhân:
Thiếu cấu hình WebSocket trong Nginx
Biến môi trường WEBHOOK_URL, N8N_PROTOCOL, N8N_HOST cấu hình sai
Domain trỏ chưa đúng IP máy chủ
Docker expose sai port
Sau khi cấu hình đúng như hướng dẫn này, lỗi “Connection Lost every 1 second” sẽ được khắc phục hoàn toàn.
Truy cập: https://n8n2.tuyentech.pro.vn
Không còn lỗi mất kết nối.
Giao diện workflow hoạt động mượt, có thể tạo flow, chạy trigger, test webhook thoải mái.
Tạo volume để lưu cấu hình n8n vĩnh viễn.
Dùng docker-compose để quản lý dễ hơn.
Cài SSL auto renew bằng Certbot cronjob.
Việc cài đặt n8n trên Google Compute Engine qua Docker tuy đơn giản nhưng cần chú ý kỹ đến:
Biến môi trường trong Docker
Reverse Proxy qua Nginx (đặc biệt hỗ trợ WebSocket)
Port mở trên Firewall của GCP
Một khi các cấu hình được đặt chính xác, n8n sẽ hoạt động ổn định như trên server vật lý.
Nếu bạn thấy bài viết hữu ích, đừng ngại chia sẻ lại hoặc trích nguồn: Tuyền Tech | tuyentech.pro.vn ✨