Bài này tóm tắt các bài trên lại thành chuẩn hóa các mục, các bước để cùng rà soát lại.
1. Vì sao “chuẩn hóa cấu trúc” quan trọng hơn tối ưu kỹ thuật
Khi hệ thống chỉ có vài website, việc cấu hình Nginx thường mang tính “thủ công”:
Tạo file nào cũng được,
Đặt ở đâu cũng được,
Sửa trực tiếp khi có lỗi.
Tuy nhiên, khi số lượng tăng lên hàng trăm website và web application, các vấn đề phát sinh không còn là hiệu năng hay TLS, mà là:
Không biết site nào thuộc nhóm nào.
Sợ sửa nhầm cấu hình của site khác.
Khó bàn giao cho người vận hành mới.
Mỗi lần thêm site mới là một lần “căng thẳng”.
Do đó, chuẩn hóa cấu trúc cấu hình là bước bắt buộc để hệ thống:
Có trật tự,
Dễ mở rộng,
Ít rủi ro vận hành.
2. Nguyên tắc thiết kế cấu trúc cấu hình cho quy mô lớn
Trước khi đi vào cấu trúc cụ thể, cần thống nhất các nguyên tắc sau:
Mỗi website = một file cấu hình
Phân nhóm theo bản chất sử dụng, không theo cảm tính
Không trộn website và web app trong cùng nhóm
Bật/tắt site bằng symlink, không xóa file
Cấu trúc thư mục phải “tự nói lên ý nghĩa”
3. Cấu trúc thư mục chuẩn đề xuất
3.1. Tổng thể thư mục Nginx
Cấu trúc này phản ánh trực tiếp cách anh nhìn hệ thống, không phải chỉ là nơi “để file”.
4. Chuẩn hóa theo từng nhóm website
4.1. Nhóm website cơ sở y tế (yte-co-so)
Đối tượng
Bệnh viện
Trung tâm y tế
Phòng khám
Trạm y tế
Ví dụ cấu hình
Đặc điểm
Chủ yếu là CMS, website giới thiệu.
Ít logic phức tạp.
Có thể dùng chung template website thường.
4.2. Nhóm website chuyên ngành (chuyen-nganh)
Đối tượng
Website nghiệp vụ
Website chuyên môn
Website truyền thông nội bộ/ngành
Ví dụ
Đặc điểm
Có thể tích hợp API.
Có upload, báo cáo.
Timeout cao hơn website thường.
4.3. Nhóm web application (webapp)
Đối tượng
Hệ thống điều hành
Dashboard
Phần mềm quản trị bệnh viện
Ví dụ
Đặc điểm
Reverse proxy là bắt buộc.
Timeout dài.
Có thể có WebSocket.
4.4. Nhóm external (external)
Đối tượng
Proxy tới backend bên ngoài.
Dịch vụ của đối tác.
Ví dụ
4.5. Nhóm maintenance (maintenance)
Đối tượng
Trang bảo trì
Trang thông báo khi backend lỗi
Ví dụ
5. Chuẩn hóa tên file cấu hình
Tên file phải dễ đọc, dễ hiểu, không gây nhầm lẫn.
5.1. Quy ước đặt tên
Website thường:
Web app:
WebSocket/API:
Ví dụ
benhvienabc.confqlcl-app.confrealtime-ws.conf
6. Chuẩn hóa cách bật/tắt website
6.1. Bật website
6.2. Tắt website (không xóa file)
Lợi ích:
Dễ rollback.
Giữ lịch sử cấu hình.
7. Ghi chú vận hành trong file cấu hình
Mỗi file cấu hình nên có header comment rõ ràng:
Lợi ích:
Người mới đọc hiểu ngay.
Dễ audit.
8. Những sai lầm cần tránh
Đặt tất cả file vào
sites-availablemà không phân nhóm.Đặt nhiều website trong cùng một file.
Xóa file cấu hình khi không dùng nữa.
Sửa trực tiếp file đang chạy mà không test.
9. Checklist khi thêm website mới
Xác định nhóm (website / webapp / ws).
Chọn đúng template chuẩn.
Đặt file vào đúng thư mục nhóm.
Ghi chú header rõ ràng.
Symlink vào
sites-enabled.nginx -ttrước khi reload.
10. Kết luận
Chuẩn hóa cấu trúc cấu hình cho hàng trăm website không phải để “đẹp”, mà để:
Hệ thống không hỗn loạn theo thời gian,
Người vận hành không sợ sửa cấu hình,
Việc mở rộng không làm tăng rủi ro.
Cấu trúc tốt là nền tảng để:
Áp dụng template,
Thực hiện failover,
Bàn giao và audit dễ dàng.
Bài tiếp theo sẽ đi sâu vào “Bài 14. Chuẩn hóa quy trình thêm mới website và web app”, biến cấu trúc này thành một quy trình vận hành nhất quán.
- Đăng nhập để gửi ý kiến