1. Vì sao cần tối ưu Nginx ở mức “cơ bản”?
Sau khi:
Nginx đã cài đặt
Virtual host đã hoạt động
Website chạy ổn định
Bước tiếp theo hợp lý là tối ưu Nginx ở mức nền tảng.
Lưu ý quan trọng:
Tối ưu không phải để chạy nhanh nhất, mà để chạy ổn định hơn.
Bài này không nói về:
Tuning cực đoan
Benchmark phức tạp
Cấu hình “thần thánh”
Mục tiêu:
Sử dụng tài nguyên hợp lý
Tránh nghẽn cổ chai cơ bản
Dễ hiểu – dễ rollback
2. Nguyên tắc tối ưu trong môi trường production
Trong loạt bài này, tối ưu tuân theo các nguyên tắc:
Chỉ tối ưu khi đã hiểu cấu hình mặc định
Mỗi thay đổi đều có lý do
Có thể quay về mặc định nếu cần
Không tối ưu dựa trên “nghe nói”
Nguyên tắc:
Tối ưu ít nhưng đúng tốt hơn tối ưu nhiều nhưng không kiểm soát.
3. Tối ưu worker process và worker connections
3.1. worker_processes
Mở file:
Thiết lập:
Giải thích:
Nginx tự động chọn số worker phù hợp với số core CPU
An toàn và phù hợp cho đa số server
3.2. worker_connections
Trong block events:
Ý nghĩa:
Số kết nối tối đa mỗi worker có thể xử lý
Tổng kết nối ≈ worker_processes × worker_connections
Giá trị 1024 là đủ cho hầu hết Web Server vừa và nhỏ.
4. Tối ưu buffer cơ bản
4.1. Vì sao buffer quan trọng?
Buffer ảnh hưởng đến:
Cách Nginx xử lý request/response
Mức sử dụng RAM
Khả năng xử lý file lớn
Cấu hình buffer quá nhỏ:
Ghi disk nhiều
Chậm
Cấu hình quá lớn:
Tốn RAM
Không cần thiết
4.2. Cấu hình buffer khuyến nghị
Trong block http:
Các giá trị này:
Phù hợp đa số website
Không gây áp lực RAM
An toàn cho production
5. Tối ưu gzip để giảm băng thông
5.1. Vì sao nên bật gzip?
Gzip giúp:
Giảm kích thước dữ liệu truyền
Tăng tốc tải trang
Giảm băng thông
Với chi phí CPU rất nhỏ.
5.2. Cấu hình gzip cơ bản
Trong block http:
Giải thích:
gzip_comp_level 5: cân bằng CPU và hiệu quả nénChỉ nén các loại file phù hợp
6. Những cấu hình KHÔNG nên bật vội
Trong giai đoạn này, chưa nên:
Bật cache phức tạp
Tối ưu timeout quá ngắn
Thay đổi keepalive mạnh tay
Áp dụng cấu hình “tuning cao cấp” trên mạng
Nguyên tắc:
Chỉ tối ưu khi có số liệu chứng minh cần thiết.
7. Kiểm tra cấu hình sau khi tối ưu
Luôn kiểm tra cú pháp:
Sau đó reload:
Theo dõi:
Log lỗi
Mức sử dụng CPU/RAM
8. Đánh giá hiệu quả tối ưu
Sau khi tối ưu:
Website không chậm hơn
Không xuất hiện lỗi mới
Tài nguyên sử dụng ổn định
Nếu có vấn đề:
Quay lại cấu hình trước đó ngay.
9. Checklist tối ưu Nginx cơ bản
worker_processes = auto
worker_connections hợp lý
Buffer cấu hình vừa đủ
Gzip bật cho nội dung phù hợp
Không áp dụng tối ưu phức tạp
10. Bài tiếp theo
Trong Bài 18, chúng ta sẽ hoàn thiện mảng vận hành Nginx:
Logging và phân tích log Nginx
Bài này sẽ giúp:
Hiểu Nginx đang xử lý gì
Phát hiện lỗi sớm
Hỗ trợ debug hiệu quả
- Đăng nhập để gửi ý kiến