Nginx là một web server mã nguồn mở, hiệu năng cao, nổi tiếng nhờ khả năng xử lý lượng lớn kết nối đồng thời, tiêu tốn ít tài nguyên. Bên cạnh đó, nó còn đóng vai trò như một reverse proxy, load balancer, hoặc cache gateway vô cùng hiệu quả.

Trong bài viết này, bạn sẽ được hướng dẫn từng bước cài đặt, cấu hình và quản lý Nginx trên Debian 12, phù hợp cho cả người mới lẫn sysadmin chuyên nghiệp.

Tổng quan về Nginx 

Nginx được phát triển bởi Igor Sysoev từ năm 2004. Hiện nay, nó là một trong những web server phổ biến nhất thế giới.

Cài-Nginx-trên-Debian-12
Cài Nginx trên Debian 12

Yêu cầu hệ thống

  • Một máy chủ Debian 12 đã cập nhật
  • Có quyền sudo hoặc truy cập root
  • Kết nối Internet ổn định
  • Nếu sử dụng domain thật, đảm bảo đã trỏ DNS về IP VPS

Các bước cài đặt Nginx trên Debian 12

Bước 1: Cập nhật hệ thống Debian 12

Mở terminal và chạy lệnh sau:

apt update && apt upgrade -y

Giải thích: Lệnh này đảm bảo các gói hệ thống được cập nhật mới nhất trước khi cài đặt Nginx.

Bước 2: Cài đặt Nginx

Debian 12 đã hỗ trợ gói Nginx chính thức trong kho mặc định.

apt install nginx -y

Sau khi cài xong, kiểm tra phiên bản:

nginx -v
nginx-install-output
Kết quả cài đặt thành công Nginx, hiển thị phiên bản

Bước 3: Khởi động và kiểm tra dịch vụ Nginx

Khởi động Nginx và đảm bảo nó chạy đúng cách:

systemctl start nginx
systemctl enable nginx
systemctl status nginx

Nếu dịch vụ đang chạy, bạn sẽ thấy dòng Active: active (running)

nginx-systemctl-status
Trạng thái active khi chạy lệnh systemctl status nginx

Bước 4: Truy cập web server qua trình duyệt

Mở trình duyệt và nhập địa chỉ IP máy chủ của bạn:

http://your_server_ip

Nếu cài đúng, bạn sẽ thấy trang chào mừng mặc định của Nginx.

nginx-default-welcome
Giao diện mặc định của Nginx trên trình duyệt

Bước 5: Hiểu cấu trúc thư mục Nginx trên Debian

Thư mục/File Chức năng
/etc/nginx/nginx.conf File cấu hình chính
/etc/nginx/sites-available/ Nơi lưu cấu hình các virtual host
/etc/nginx/sites-enabled/ Các site đang kích hoạt (symlink từ sites-available)
/var/www/html/ Webroot mặc định
/var/log/nginx/ Nơi lưu access và error log

 

Bước 6: Tạo website riêng bằng Virtual Host

Giả sử bạn muốn tạo web cho domain example.com, hãy làm như sau:

Tạo thư mục website

mkdir -p /var/www/example.com/html
chown -R www-data:www-data /var/www/example.com
chmod -R 755 /var/www/example.com

Tạo file index.html mẫu

echo "<h1>Welcome to example.com</h1>" > /var/www/example.com/html/index.html

Tạo file cấu hình site

nano /etc/nginx/sites-available/example.com

Nội dung mẫu:

server {

    listen 80;

    server_name example.com www.example.com;

    root /var/www/example.com/html;

    index index.html;

    access_log /var/log/nginx/example.access.log;

    error_log /var/log/nginx/example.error.log;

    location / {

        try_files $uri $uri/ =404;

    }

}

Kích hoạt site

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

Chèn ảnh tại đây:

  • Tên ảnh: nginx-site-setup.png
  • Nội dung ảnh: Minh họa thư mục /var/www/example.com/ đã tạo và lệnh reload

 

Bước 7 (Tuỳ chọn): Cài SSL miễn phí với Let’s Encrypt

  • Cài Certbot cho Nginx
apt install certbot python3-certbot-nginx -y
  • Cấp chứng chỉ SSL
certbot --nginx -d example.com -d www.example.com
  • Thiết lập tự gia hạn
crontab -e

Thêm dòng:

0 3 * * * certbot renew --quiet

Chèn ảnh tại đây:

  • Tên ảnh: certbot-success.png
  • Nội dung ảnh: Kết quả cài SSL thành công cho domain

Các lệnh quản lý Nginx phổ biến

Lệnh Mục đích
sudo systemctl start nginx Bật dịch vụ
sudo systemctl stop nginx Tắt dịch vụ
sudo systemctl restart nginx Khởi động lại
sudo systemctl reload nginx Tải lại cấu hình không ngắt kết nối
nginx -t Kiểm tra cấu hình hợp lệ

Kết luận

Việc cài đặt và sử dụng Nginx trên Debian 12 hoàn toàn đơn giản nếu làm theo đúng các bước như trên. Dù bạn chỉ chạy website tĩnh hay là cổng reverse proxy cho ứng dụng PHP/Python, Nginx vẫn là lựa chọn tối ưu về hiệu năng và độ ổn định.

Nếu bạn chưa có VPS Debian 12, hãy truy cập XanhCloud.com – nơi cung cấp VPS tốc độ cao, hỗ trợ kỹ thuật 24/7, có sẵn template Debian/Nginx và nhiều công cụ DevOps hiện đại.