1. Vì sao phải hiểu cấu trúc cấu hình Nginx?
Một trong những nguyên nhân phổ biến khiến cấu hình Nginx trở nên:
Rối rắm
Khó debug
Khó bàn giao
là do:
Không hiểu rõ Nginx đọc file cấu hình theo cách nào.
Nếu không nắm cấu trúc:
Thêm website sẽ rất lúng túng
Sửa một chỗ có thể ảnh hưởng toàn hệ thống
Dễ tạo cấu hình chồng chéo, khó kiểm soát
Bài này giúp bạn hiểu – không phải ghi nhớ – cấu trúc cấu hình Nginx.
2. Thư mục cấu hình chính của Nginx
Toàn bộ cấu hình Nginx nằm tại:
Các thành phần quan trọng:

Không phải thư mục nào cũng cần chỉnh sửa trong giai đoạn đầu.
3. File nginx.conf – cấu hình gốc
3.1. Vai trò của nginx.conf
nginx.conf là file:
Được Nginx đọc đầu tiên
Khai báo các block cấp cao:
eventshttp
Thông thường, không cần chỉnh sửa nhiều trong file này khi mới triển khai.
3.2. Nội dung quan trọng cần biết
Trong nginx.conf, bạn sẽ thấy các dòng như:
Điều này có nghĩa:
Nginx đọc cấu hình từ nhiều file, không chỉ một file duy nhất.
4. sites-available và sites-enabled – nền tảng quản lý website
4.1. sites-available
Chứa tất cả cấu hình website
Mỗi website = một file
Có thể tồn tại nhưng chưa được kích hoạt
4.2. sites-enabled
Chứa các symlink trỏ tới
sites-availableFile nào nằm ở đây → website đó đang hoạt động
Nguyên tắc:
Không đặt trực tiếp file cấu hình website vào sites-enabled.
4.3. Kích hoạt / vô hiệu website
Kích hoạt:
Vô hiệu:
Cách làm này giúp:
Bật/tắt website nhanh
Không mất file cấu hình gốc
5. conf.d – cấu hình bổ sung toàn cục
Dùng cho:
Cấu hình chung
Cấu hình bổ trợ
Không nên đặt virtual host ở đây
Trong loạt bài này:
conf.d chỉ dùng khi thật sự cần cấu hình dùng chung.
6. snippets – tái sử dụng cấu hình
Chứa các đoạn cấu hình dùng lại nhiều lần
Ví dụ:
Cấu hình SSL
Cấu hình security header
Cấu hình FastCGI
Ưu điểm:
Tránh lặp cấu hình
Dễ chỉnh sửa đồng loạt
7. modules-enabled – module mở rộng
Chứa các module Nginx đã bật
Thường không cần chỉnh thủ công
Nguyên tắc:
Không bật module nếu không biết rõ nó dùng để làm gì.
8. Thứ tự Nginx đọc cấu hình
Tóm tắt luồng đọc cấu hình:
nginx.confmodules-enabled/*.confconf.d/*.confsites-enabled/*
Điều này giải thích vì sao:
Một cấu hình ở
conf.dcó thể ảnh hưởng toàn hệ thốngMột lỗi trong
sites-enabledcó thể làm Nginx không reload được
9. Tư duy tổ chức cấu hình Nginx cho production
Trong loạt bài này, chúng ta áp dụng:
Một website → một file trong
sites-availableKhông trộn cấu hình nhiều website
Cấu hình dùng chung → snippets
Không chỉnh nginx.conf nếu chưa cần
Nguyên tắc:
Cấu hình dễ đọc quan trọng hơn cấu hình ngắn.
10. Ví dụ cấu trúc cho nhiều website
Cấu trúc này giúp:
Quản lý nhiều website dễ dàng
Bàn giao rõ ràng
Mở rộng an toàn
11. Những sai lầm phổ biến về cấu trúc cấu hình
Dồn tất cả vào một file
Chỉnh trực tiếp nginx.conf
Đặt virtual host trong conf.d
Không test cấu hình sau khi chỉnh
Những sai lầm này khiến:
Cấu hình Nginx trở thành “mê cung”.
12. Chuẩn bị cho bước tiếp theo
Sau bài này, bạn cần:
Hiểu rõ vai trò từng thư mục
Không còn “sợ” cấu hình Nginx
Sẵn sàng tạo virtual host đầu tiên
13. Bài tiếp theo
Trong Bài 15, chúng ta sẽ triển khai nội dung quan trọng tiếp theo:
Tạo virtual host (server block) chuẩn production
Bài này sẽ hướng dẫn:
Tạo website riêng biệt
Gán domain
Chuẩn bị cho PHP và SSL
- Đăng nhập để gửi ý kiến

