

Trong thế giới phát triển web hiện đại, Nginx là một trong những máy chủ web phổ biến nhất hành tinh, phục vụ hơn 30% trang web hoạt động toàn cầu. Với kiến trúc event-driven, Nginx xử lý hàng nghìn kết nối đồng thời mà tiêu tốn rất ít tài nguyên. Nếu bạn là người mới bắt đầu muốn tìm hiểu về quản trị server, Nginx là điểm xuất phát lý tưởng. Bài viết này hướng dẫn bạn từng bước cài đặt, cấu hình cơ bản, tối ưu hiệu suất và bảo mật Nginx trên hệ điều hành Linux.
Nginx Là Gì? Tại Sao Nên Chọn Nginx?
Nginx (phát âm là “Engine-X”) là phần mềm mã nguồn mở được tạo ra bởi Igor Sysoev vào năm 2004. Ban đầu, Nginx được thiết kế để giải quyết vấn đề C10k — xử lý đồng thời 10.000 kết nối trên một máy chủ. Đây là thách thức lớn khi mà Apache truyền thống tạo một thread mới cho mỗi kết nối, nhanh chóng cạn kiệt bộ nhớ.
Ngày nay, Nginx không chỉ là máy chủ web mà còn là reverse proxy, load balancer, HTTP cache, và streaming server. Nhiều trang web lớn nhất thế giới như Netflix, Dropbox, Airbnb đều sử dụng Nginx.
Ưu điểm vượt trội của Nginx so với Apache
- Hiệu suất cao: Sử dụng mô hình event-driven, không tạo thread mới cho mỗi kết nối, giúp tiết kiệm bộ nhớ đáng kể. Một worker Nginx có thể xử lý hàng nghìn kết nối.
- Nhẹ nhàng: Cài đặt đơn giản, tài nguyên tiêu thụ thấp hơn Apache đáng kể. Nginx chỉ chiếm khoảng 2-5MB RAM cho mỗi worker process.
- Bảo mật tốt: Hỗ trợ SSL/TLS tích hợp, rate limiting, chặn IP tự động, vàhide server tokens để ẩn phiên bản Nginx.
- Cấu hình linh hoạt: Cú pháp cấu hình rõ ràng, dễ đọc, dễ mở rộng với system của blocks và location matching.
- Static file serving nhanh: Tối ưu cho serving file tĩnh với hỗ trợ sendfile, aio, và caching.

Cài Đặt Nginx Trên Ubuntu/Debian
Quy trình cài đặt Nginx trên các hệ điều hành Linux phổ biến rất đơn giản và chỉ mất vài phút. Dưới đây là hướng dẫn chi tiết cho Ubuntu và Debian — hai distro được sử dụng nhiều nhất trong deployment server hiện nay.
Bước 1: Cập nhật hệ thống
Trước khi cài đặt bất kỳ phần mềm nào, luôn cập nhật danh sách gói và nâng cấp các gói hiện tại để đảm bảo hệ thống ổn định:
sudo apt update && sudo apt upgrade -y
Bước 2: Cài đặt Nginx
Gói Nginx có sẵn trong kho Ubuntu, cài đặt chỉ với một lệnh:
sudo apt install nginx -y
Bước 3: Khởi động và kiểm tra trạng thái
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Sau khi cài đặt xong, mở trình duyệt và truy cập http://YOUR_SERVER_IP. Bạn sẽ thấy trang welcome “Welcome to nginx!” chứng tỏ Nginx đang hoạt động bình thường.
Quản lý Nginx qua systemctl
sudo systemctl restart nginx # Khởi động lại
sudo systemctl reload nginx # Tải lại cấu hình
sudo systemctl stop nginx # Dừng Nginx
Cấu Hình Cơ Bản Cho Website
File cấu hình chính nằm tại /etc/nginx/nginx.conf. Tuy nhiên, bạn nên tạo file cấu hình riêng cho từng domain trong thư mục /etc/nginx/sites-available/ và symlink vào /etc/nginx/sites-enabled/.
Cấu hình Virtual Host cho domain
Virtual Host cho phép Nginx phục vụ nhiều website khác nhau trên cùng một server:
server {
listen 80;
server_name domaincuaban.com www.domaincuaban.com;
root /var/www/domaincuaban/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Sau khi tạo file cấu hình trong /etc/nginx/sites-available/, tạo symlink vào sites-enabled:
sudo ln -s /etc/nginx/sites-available/domaincuaban /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Lệnh nginx -t kiểm tra cú pháp cấu hình trước khi reload — luôn dùng trước khi restart.
Tối Ưu Hiệu Suất Nginx
Nginx đã được tối ưu sẵn theo mặc định, nhưng bạn có thể tinh chỉnh thêm để đạt hiệu suất tốt hơn cho traffic lớn hoặc ứng dụng đòi hỏi cao.
Bật gzip compression
Gzip giúp giảm kích thước response từ 70-90%, cải thiện tốc độ tải trang đáng kể cho người dùng, đặc biệt trên mobile. Thêm vào nginx.conf trong khối http:
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_proxied any;
Cache tĩnh với expires header
Thiết lập cache headers cho file tĩnh (CSS, JS, images) giúp trình duyệt lưu cache và tải nhanh hơn khi revisit:
location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
Tối ưu worker processes
Đặt số worker bằng số CPU cores:
worker_processes auto;
worker_connections 4096;

Bảo Mật Nginx Cho Production
Một máy chủ web không bảo mật giống như một cánh cửa mở cho kẻ xâm nhập. Dưới đây là các biện pháp bảo mật cơ bản mà mọi production server cần:
Cấu hình SSL/TLS với Let’s Encrypt
HTTPS là bắt buộc trong 2024+, Let’s Encrypt cung cấp certificate miễn phí:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d domaincuaban.com -d www.domaincuaban.com
Certbot sẽ tự động tạo certificate, cấu hình Nginx redirect HTTP→HTTPS. Đặt cron auto-renew:
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Giới hạn rate request chống DDoS
Chống DDoS cơ bản bằng cách giới hạn số request từ một IP trong khoảng thời gian:
limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;
server {
location / {
limit_req zone=general burst=20 nodelay;
limit_req_status 429;
}
}
Ẩn thông tin version
server_tokens off;
Thêm vào http block trong nginx.conf để ẩn phiên bản Nginx trong response headers.
Chặn truy cập file nhạy cảm
location ~ /.ht {
deny all;
}
location ~ /.git {
deny all;
}
Kết Luận
Nginx là công cụ không thể thiếu cho bất kỳ ai làm việc với web server. Từ cài đặt cơ bản, cấu hình virtual host, tối ưu hiệu suất với gzip và cache, đến bảo mật với SSL, rate limiting, và ẩn version — Nginx đều cung cấp giải pháp nhẹ, nhanh, và đáng tin cậy. Hãy bắt đầu thực hành ngay: cài đặt Nginx trên VPS, cấu hình domain đầu tiên, và triển khai website của bạn lên production.
Tham khảo thêm: Tài liệu chính thức Nginx — Installing NGINX, DigitalOcean — How To Install Nginx on Ubuntu 22.04, NGINX Wiki — Start Here.
