Cài đặt Docker (Nginx bên ngoài)
Trong cách triển khai này, container ứng dụng NocoBase và container Nginx chạy tách rời nhau. Bạn có thể bắt đầu từ Cài đặt Docker (Nginx tích hợp), rồi chuyển điểm vào sang container Nginx bên ngoài.
Khi nào nên dùng cách này
- Bạn muốn tách riêng NocoBase và web server
- Bạn muốn tự quản lý cấu hình Nginx và các cổng được mở
- Bạn chỉ muốn đưa container proxy ra mạng công khai
Ví dụ docker-compose.yml
Nếu bạn cần image full, hãy thay latest-no-nginx bằng latest-full-no-nginx.
Mapping 13000:80 chỉ dùng để tiện kiểm thử local, tránh chiếm trực tiếp các cổng chuẩn của host. Trong production, thường không tiếp tục dùng 13000:80; thay vào đó, container Nginx bên ngoài sẽ map trực tiếp tới các cổng 80 và 443 của host.
Điểm chính
NOCOBASE_EXTRACT_CLIENT_ASSETS=truedùng để tách tài nguyên client và tạo cấu hình proxyNOCOBASE_PROXY_PROVIDER=nginxcho biết cần tạo cấu hình NginxNOCOBASE_PROXY_UPSTREAM_HOST=appcho phép container Nginx truy cập dịch vụappqua mạng Compose./storagecần được mount vào cảappvànginxđể cùng dùng cấu hình proxy, tài nguyên tĩnh và tệp tải lên- Container
nginxcần chờnocobase.confđược tạo xong, sau đó dùngln -sfliên kết nó tới/etc/nginx/conf.d/default.conf - Cấu hình được tạo tự động chuyển tiếp cả route
/files/dướiAPP_PUBLIC_PATHvà route/files/ở root đến NocoBase để xử lý xem trước và tải file có xác thực - Nếu dùng container Nginx bên ngoài, chỉ cần để container
nginxxử lý mapping cổng host. Khi kiểm thử, bạn có thể bắt đầu với13000:80; trong production, thường mở trực tiếp các cổng80và443của host, còn dịch vụappkhông cần mở cổng ra host
Nếu dùng Nginx cài trực tiếp trên máy host
Nếu Nginx của bạn được cài trực tiếp trên máy host thay vì chạy trong container Docker, bạn nên dùng một docker-compose.yml riêng. Trong cách này, dịch vụ app cần publish cổng ra host, và các biến proxy phải dùng giá trị theo góc nhìn của host.
Bạn có thể dùng docker-compose.yml như sau:
Trong biến thể này:
NOCOBASE_PROXY_STORAGE_PATHcần là đường dẫn tuyệt đối của thư mụcstoragetrên hostNOCOBASE_PROXY_UPSTREAM_HOSTcần là127.0.0.1- Dịch vụ
appcần giữports, để Nginx trên host có thể truy cập ứng dụng qua127.0.0.1:13000
Sau khi container app khởi động, hãy chờ file cấu hình được tạo rồi liên kết nó vào thư mục cấu hình Nginx trên host:
Nếu Nginx trên host của bạn không dùng thư mục conf.d, hãy thay đường dẫn đích bằng đường dẫn cấu hình thực tế của bạn. Thông thường, giữ nocobase.conf như một file được include từ ngữ cảnh http {} sẽ an toàn hơn là chép thủ công nội dung của nó.
Nếu bạn tự quản lý Nginx thay vì dùng cấu hình được tạo tự động, hãy bảo đảm /files/ và route tương ứng dưới APP_PUBLIC_PATH được chuyển tiếp đến NocoBase trước các rule fallback SPA. Xem Proxy ngược Nginx để tham khảo ví dụ đầy đủ.
Liên kết liên quan
- Cài đặt Docker (Nginx tích hợp) — Bắt đầu từ mô hình một container
- Proxy tài nguyên tĩnh với Nginx — Tìm hiểu thêm về cấu hình Nginx được tạo ra

