Nginx là một trong những máy chủ web phổ biến và mạnh mẽ, được sử dụng rộng rãi nhờ khả năng xử lý nhiều yêu cầu một cách hiệu quả. Cài đặt Nginx trên Ubuntu không quá phức tạp nhưng đòi hỏi người dùng phải nắm rõ các bước cơ bản. Trong bài viết này, chúng tôi sẽ hướng dẫn chi tiết từng bước từ cài đặt, cấu hình đến tối ưu hiệu suất Nginx trên hệ điều hành Ubuntu. Dù bạn là người mới hay đã có kinh nghiệm, bài viết này sẽ giúp bạn xây dựng một máy chủ web hoàn chỉnh, sẵn sàng cho mọi dự án.

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

sudo apt update && sudo apt upgrade -y

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

sudo apt install nginx -y

Sau khi cài xong, kiểm tra trạng thái dịch vụ:

sudo systemctl status nginx

Nếu chưa chạy, bạn có thể bật thủ công:

sudo systemctl start nginx
sudo systemctl enable nginx   # Tự động chạy khi khởi động lại server

✅ Bước 3: Mở tường lửa cho Nginx (nếu UFW đang bật)

sudo ufw allow 'Nginx Full'
sudo ufw reload
sudo ufw status

✅ Bước 4: Kiểm tra hoạt động

Mở trình duyệt và truy cập địa chỉ IP public hoặc domain:

http://your-server-ip

Bạn sẽ thấy trang mặc định: "Welcome to Nginx"


✅ Bước 5: Cấu trúc thư mục chính của Nginx

  • Cấu hình chính: /etc/nginx/nginx.conf
  • Các site khả dụng: /etc/nginx/sites-available/
  • Các site được kích hoạt: /etc/nginx/sites-enabled/
  • Mặc định document root: /var/www/html

✅ Bước 6: Tạo Virtual Host (domain riêng)

Ví dụ: cấu hình domain example.com

1. Tạo thư mục và index:

sudo mkdir -p /var/www/example.com
echo "<h1>Hello from example.com</h1>" | sudo tee /var/www/example.com/index.html
sudo chown -R www-data:www-data /var/www/example.com

2. Tạo file cấu hình:

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

Dán vào nội dung:

server {
    listen 80;
    server_name example.com www.example.com;

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

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

3. Kích hoạt site:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

4. Kiểm tra & reload:

sudo nginx -t
sudo systemctl reload nginx

✅ Bước 7: Trỏ domain về IP server

Tại quản lý DNS domain → thêm bản ghi A trỏ về IP server:

A     example.com     123.123.123.123
A     www.example.com 123.123.123.123

✅ Bước 8: Cài SSL miễn phí với Let's Encrypt

sudo apt install certbot python3-certbot-nginx -y

Sau đó chạy:

sudo certbot --nginx -d example.com -d www.example.com

Cài thành công sẽ tự cấu hình HTTPS cho bạn.


✅ Bước 9: Tự động gia hạn SSL

Certbot sẽ tự thêm cron job vào hệ thống. Bạn có thể kiểm tra thử bằng:

sudo certbot renew --dry-run

✅ Bước 10: Các lệnh hữu ích khác

Tác vụLệnh
Khởi động lại Nginxsudo systemctl restart nginx
Dừng Nginxsudo systemctl stop nginx
Kiểm tra lỗi configsudo nginx -t
Xem log truy cậptail -f /var/log/nginx/access.log
Xem log lỗitail -f /var/log/nginx/error.log

✅ Bonus: Tắt site mặc định của Nginx

sudo rm /etc/nginx/sites-enabled/default sudo systemctl reload nginx