Nginx là gì? Giới thiệu về Nginx.

 Nginx là gì?

Nginx (phát âm là "engine-x") là một máy chủ web (web server) mã nguồn mở, có hiệu suất cao và khả năng xử lý đồng thời hàng nghìn kết nối. Ngoài chức năng làm web server, Nginx còn được dùng phổ biến làm:

  • Reverse proxy (Proxy ngược)

  • Load balancer (Cân bằng tải)

  • HTTP cache (Bộ nhớ đệm HTTP)

  • Streaming media server (Máy chủ phát trực tuyến)


I. Tại sao nên dùng Nginx?

  • Hiệu suất cao: Xử lý hàng nghìn kết nối với mức tiêu thụ tài nguyên thấp.

  • Không đồng bộ, event-driven: Khác với Apache (dùng mô hình thread/process), Nginx sử dụng mô hình event-driven nên xử lý tốt hơn trong môi trường nhiều người dùng.

  • Dễ cấu hình, mạnh mẽ: Cấu hình qua các file .conf rất linh hoạt.

  • Phổ biến: Được sử dụng bởi các website lớn như Netflix, Dropbox, GitHub, WordPress, v.v.


II. Cài đặt Nginx

1. Trên Ubuntu/Debian

bash
sudo apt update sudo apt install nginx

2. Trên CentOS/RHEL

bash
sudo yum install epel-release sudo yum install nginx

3. Trên Windows (phiên bản không chính thức)


III. Cấu trúc thư mục Nginx (Ubuntu mặc định)

Đường dẫnMô tả
/etc/nginx/nginx.confFile cấu hình chính
/etc/nginx/sites-available/Thư mục chứa cấu hình từng website
/etc/nginx/sites-enabled/Chứa các link đến site được bật
/var/www/htmlThư mục chứa mã nguồn web mặc định

IV. File cấu hình Nginx cơ bản

nginx
server { listen 80; server_name example.com; root /var/www/example.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } }

Giải thích:

  • listen 80; → Lắng nghe cổng 80 (HTTP)

  • server_name → Tên miền xử lý

  • root → Thư mục gốc của website

  • location / → Xử lý các yêu cầu URL


V. Một số cấu hình nâng cao

1. Reverse Proxy

nginx
location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }

2. Cân bằng tải

nginx
upstream backend { server backend1.example.com; server backend2.example.com; } server { location / { proxy_pass http://backend; } }

3. SSL với Let's Encrypt (qua Certbot)

bash
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com

VI. Các lệnh quản lý Nginx

LệnhMô tả
sudo systemctl start nginxKhởi động Nginx
sudo systemctl stop nginxDừng Nginx
sudo systemctl restart nginxKhởi động lại
sudo nginx -tKiểm tra lỗi cấu hình
sudo systemctl reload nginxTải lại cấu hình không ngắt kết nối

VII. Nhật ký (Logs)

  • Access log: /var/log/nginx/access.log

  • Error log: /var/log/nginx/error.log


VIII. Khi nào nên dùng Nginx?

Nhu cầuCó nên dùng Nginx không?
Website tĩnh (HTML, CSS)✅ Rất phù hợp
Proxy ngược cho app backend (NodeJS, Flask...)✅ Tuyệt vời
Cân bằng tải backend✅ Hỗ trợ tốt
Xử lý CGI, mod_php❌ Apache tốt hơn
Streaming media, live video✅ Có hỗ trợ

IX. Tài liệu tham khảo


Bạn muốn mình hướng dẫn cụ thể cho một use case nào không (ví dụ như: cấu hình reverse proxy cho NodeJS, bảo mật SSL, hay setup nhiều domain trên cùng server)?

Nhận xét

Bài đăng phổ biến từ blog này

10 Most Used Nginx Commands Every Linux User Must Know

Hướng dẫn cách kiểm tra cổng đang mở (Check open port) trên linux

Những lệnh command cơ bản trên Linux