1. Vì sao quản lý nhiều website dễ trở thành “thảm họa”?
Ban đầu, server chỉ có:
1 website
1 domain
1 cấu hình
Nhưng theo thời gian:
Thêm website mới
Thêm subdomain
Thêm môi trường staging
Thêm CMS khác nhau
Nếu không có cách tổ chức ngay từ đầu, hệ thống rất dễ rơi vào tình trạng:
Cấu hình chồng chéo
Nhầm domain – nhầm thư mục
Debug sai site
Sửa site này làm ảnh hưởng site khác
Bài này giúp bạn quản lý nhiều website mà không biến server thành mớ hỗn độn.
2. Nguyên tắc quản lý nhiều website trên một server
Trong loạt bài này, chúng ta áp dụng các nguyên tắc:
Mỗi website là một đơn vị độc lập
Không chia sẻ thư mục source
Không chia sẻ database
Có log riêng
Có quy ước đặt tên thống nhất
Nguyên tắc:
Sự cố của một website không được ảnh hưởng website khác.
3. Tổ chức thư mục cho nhiều website
3.1. Cấu trúc thư mục khuyến nghị
Mỗi website:
Có thư mục riêng
Không dùng chung
3.2. Quy ước đặt tên thư mục
Dùng chữ thường
Không dấu, không khoảng trắng
Phản ánh đúng domain hoặc vai trò
Ví dụ:
congvancntt-itsite1-staging
4. Tổ chức cấu hình Nginx cho nhiều website
4.1. Mỗi website → một file cấu hình
Không gộp nhiều site vào một file.
Chỉ làm trong tình huống đặc biệt và bạn biết rõ đang làm gì cũng như có kinh nghiệm về việc này:
4.2. Kích hoạt có chọn lọc

Site nào chưa dùng:
Không enable
Không ảnh hưởng hệ thống
5. Quản lý log theo từng website
5.1. Log riêng là bắt buộc
Trong mỗi server block:
Lợi ích:
Debug nhanh
Không lẫn log giữa các site
Phân tích truy cập dễ dàng
5.2. Log rotation
Ubuntu có sẵn logrotate cho Nginx, nhưng cần:
Kiểm tra định kỳ
Đảm bảo không làm đầy disk
6. Quản lý domain và subdomain
6.1. Một domain – nhiều website
Ví dụ:
cntt.itblog.cntt.itstaging.cntt.it
Mỗi domain/subdomain:
Là một virtual host riêng
Không dùng chung cấu hình
6.2. Tránh cấu hình wildcard thiếu kiểm soát
Không nên dùng:
trong production nếu không có lý do rõ ràng.
7. Quản lý database theo website
Nguyên tắc:
Mỗi website → một database
Mỗi database → một user riêng
Không dùng chung database cho nhiều site.
Điều này giúp:
Backup riêng
Restore riêng
Không lộ dữ liệu chéo
8. Quản lý quyền truy cập theo website
Web server (
www-data) chỉ có quyền cần thiếtKhông dùng chung user hệ thống cho mọi site
Có thể dùng group để quản lý nhiều site cùng nhóm
Nguyên tắc:
Phân quyền theo website, không theo tiện lợi.
9. Quản lý môi trường staging / test
Khi có staging:
Tách domain rõ ràng:
staging.domain.com
Tách thư mục
Tách database
Có thể tắt index trên search engine
Không dùng staging chung với live.
10. Checklist quản lý nhiều website an toàn
Thư mục riêng cho từng site
File cấu hình Nginx riêng
Log riêng
Database riêng
Quy ước đặt tên thống nhất
Không chia sẻ tài nguyên không cần thiết
11. Những sai lầm phổ biến khi quản lý nhiều website
Dùng chung thư mục cho nhiều site
Dùng chung database
Không có log riêng
Copy cấu hình nhưng quên đổi tên
Những lỗi này:
Không gây sự cố ngay, nhưng gây hậu quả lớn khi hệ thống lớn lên.
12. Bài tiếp theo
Trong Bài 17, chúng ta sẽ bước sang phần tối ưu nền tảng web server:
Tối ưu Nginx cơ bản: worker, buffer, gzip
Bài này sẽ giúp:
Nginx hoạt động ổn định hơn
Không cần tối ưu phức tạp
Phù hợp production
- Đăng nhập để gửi ý kiến


