Bảo vệ trình soạn thảo
Đặt trình soạn thảo phía sau HTTPS và xác thực được hỗ trợ. Hạn chế quyền truy cập quản trị và tránh đăng ký công khai khi không cần thiết. Các tuyến webhook cần quyết định riêng về phơi bày và xác thực.
Giữ khóa thông tin xác thực
Sao lưu khóa mã hóa đã cấu hình với biện pháp bảo vệ phù hợp. Khôi phục cơ sở dữ liệu mà không có khóa đúng có thể khiến thông tin đăng nhập đã lưu không dùng được. Giữ khóa ngoài ảnh chụp màn hình, kho lưu trữ và nhật ký chưa lọc.
Mở rộng đường thực thi một cách có chủ đích
Với một thiết lập bận rộn, hãy xem lại cơ sở dữ liệu, hàng đợi và mô hình worker được hỗ trợ. Redis và các worker riêng biệt thêm yêu cầu truy cập và lưu trữ riêng. Giới hạn số tác vụ đồng thời để một đợt tăng đột biến không thể làm cạn VPS hoặc ngân sách API bên ngoài.
Chỉ giữ dữ liệu thực thi hữu ích
Quy trình công việc có thể xử lý token, hồ sơ cá nhân và tài liệu. Thiết lập việc dọn dẹp lịch sử thực thi, che giấu các giá trị nhạy cảm và xác định các lần thử lại một cách cẩn thận. Một webhook bị trùng lặp không được gây ra thanh toán hoặc tin nhắn thứ hai ngoài ý muốn.
Coi khóa mã hóa là một phần của cơ sở dữ liệu
Thông tin đăng nhập đã lưu phụ thuộc vào khóa mã hóa của n8n. Hãy giữ thư mục trạng thái chứa khóa được tạo tự động hoặc đặt N8N_ENCRYPTION_KEY từ một kho bí mật riêng tư. Tất cả worker hàng đợi cần cùng khóa với tiến trình chính. Kiểm tra khôi phục bằng một thông tin đăng nhập dùng một lần; chỉ riêng cơ sở dữ liệu được khôi phục có thể trông khỏe mạnh trong khi thông tin đăng nhập của nó vẫn không đọc được.
- Giữ khóa bên ngoài thư mục công khai và kho lưu trữ
- Sao lưu cơ sở dữ liệu một cách nhất quán
- Sử dụng PostgreSQL được hỗ trợ cho triển khai sản xuất dự kiến
Tài liệu chính thức: cấu hình khóa mã hóa n8n
Cấp cho webhook địa chỉ công khai của chúng
Một reverse proxy như Caddy có thể kết thúc HTTPS trong khi n8n lắng nghe nội bộ. Tài liệu hiện tại dùng N8N_WEBHOOK_URL cho nguồn gốc webhook bên ngoài và thay thế tên WEBHOOK_URL cũ từ phiên bản 2.35.0. Đặt số bước nhảy proxy tin cậy theo đường dẫn thực tế; một proxy duy nhất dùng N8N_PROXY_HOPS=1. Giữ nguyên thông tin máy chủ, giao thức và ứng dụng khách được chuyển tiếp. Thử một webhook từ bên ngoài máy chủ và xác minh URL sản xuất của nó.
- Đặt múi giờ của quy trình làm việc một cách có chủ đích
- Cắt tỉa lịch sử thực thi có chứa đầu vào nhạy cảm
- Chỉ dùng worker hàng đợi và Redis với các kiểm soát truy cập riêng tư cần thiết
# Example: one HTTPS reverse proxy
N8N_WEBHOOK_URL=https://automations.example.com/
N8N_PROXY_HOPS=1Tài liệu chính thức: n8n phía sau một reverse proxy
Xác định khối lượng công việc và các tích hợp được phép
Liệt kê các trình kích hoạt, tài khoản bên ngoài, khối lượng thực thi dự kiến và mức chi tiêu hoặc tác dụng phụ tối đa mà mỗi quy trình có thể tạo ra. Kiểm tra giấy phép n8n cho mục đích sử dụng thực tế, đặc biệt nếu cung cấp nó như một dịch vụ cho người khác. Một quy trình theo lịch nhỏ và một bộ xử lý webhook công khai có nhu cầu tài nguyên khác nhau. Bắt đầu với bản phát hành được hỗ trợ, trạng thái lưu trữ liên tục riêng tư, tên TLS và cơ sở dữ liệu phù hợp với triển khai; tránh để lộ cổng cơ sở dữ liệu với trình soạn thảo.
- Sử dụng thông tin đăng nhập hạn chế riêng biệt cho từng tích hợp.
- Đặt múi giờ quy trình làm việc dự kiến và thời gian lưu giữ lịch sử thực thi.
- Giữ quy trình làm việc đã xuất không chứa bí mật thực được nhúng.
Tài liệu chính thức: Triển khai Docker n8n
Đặt nguồn gốc webhook công khai cho bản phát hành đã cài đặt
Một reverse proxy như Caddy truy cập n8n nội bộ trong khi các dịch vụ bên ngoài gọi nguồn gốc webhook HTTPS của nó. Sử dụng biến URL webhook được ghi trong tài liệu cho bản phát hành đã cài đặt; tài liệu hiện tại đặt tên N8N_WEBHOOK_URL, trong khi các bản phát hành cũ hơn dùng WEBHOOK_URL. Đặt số bước nhảy proxy thực tế thay vì tin tưởng các header chuyển tiếp tùy ý. Giữ chính sách truy cập trình soạn thảo tách biệt với xác thực webhook, và xác minh rằng callback sản xuất không chứa máy chủ hoặc cổng nội bộ.
# Example values for a supported current release, behind one proxy:
N8N_WEBHOOK_URL=https://automations.example.com/
N8N_PROXY_HOPS=1Tài liệu chính thức: Cài đặt reverse-proxy webhook n8n
Kiểm thử một quy trình vô hại trước khi cấp quyền ghi
Bắt đầu bằng một yêu cầu chỉ đọc hoặc một bản ghi thử nghiệm dùng một lần. Kiểm tra webhook production từ bên ngoài VPS, việc từ chối xác thực và một lần thử lại có chủ đích. Một yêu cầu lặp lại không được vô tình tạo ra hành động hệ quả thứ hai. Kiểm tra nhật ký thực thi để tìm dữ liệu đầu vào bị rò rỉ, sau đó áp dụng chính sách lưu trữ. Nếu webhook chỉ hoạt động trong chế độ thử nghiệm của trình soạn thảo, hãy kiểm tra xem quy trình có được xuất bản/kích hoạt hay không và liệu các tuyến production và thử nghiệm có đến đúng tiến trình hay không.
- Sử dụng thông tin xác thực tích hợp dùng một lần để kiểm tra khôi phục.
- Giữ một bản sao mã hóa độc lập của N8N_ENCRYPTION_KEY hoặc trạng thái khóa đã tạo.
- Không gửi mật khẩu mẫu hoặc token API vào đầu ra gỡ lỗi được lưu giữ.
Tài liệu chính thức: khóa mã hóa n8n
Chỉ mở rộng quy mô sau khi quan sát được điểm nghẽn thực thi
Chế độ hàng đợi bổ sung Redis, các worker và một cơ sở dữ liệu dùng chung; tiến trình chính nhận kích hoạt trong khi các worker thực hiện thực thi. Mọi worker phải dùng cùng khóa mã hóa thông tin xác thực. Tuân theo các yêu cầu lưu trữ dữ liệu nhị phân hiện tại trước khi chuyển một quy trình làm việc có tệp sang chế độ hàng đợi. Giới hạn đồng thời và ngân sách API của dịch vụ gốc, đồng thời giám sát tuổi hàng đợi và lỗi. Sao lưu cơ sở dữ liệu, trạng thái và khóa cùng nhau; khởi động lại container không phải là kế hoạch khôi phục cho thông tin xác thực đã lưu không đọc được.
Tài liệu chính thức: chế độ hàng đợi n8n · Cài đặt cắt tỉa thực thi