🌐 NginX là gì? Hướng dẫn cơ bản về cấu hình và thuật ngữ thường gặp
🎯 NginX là gì?
NginX là một web server mã nguồn mở nổi tiếng, thường được dùng làm:
- Web server tĩnh (static file server)
- Reverse proxy
- Load balancer
- API gateway
NginX được đánh giá cao vì:
- ✅ Hiệu năng cao
- ✅ Xử lý đồng thời hàng nghìn kết nối
- ✅ Dễ cấu hình, nhẹ, phù hợp cả cho hệ thống nhỏ lẫn lớn
🔍 Một số thuật ngữ quan trọng
Thuật ngữ | Ý nghĩa |
---|---|
Reverse Proxy | Trung gian giữa client và server nội bộ (ẩn backend) |
Load Balancing | Phân phối traffic đến nhiều server backend |
Upstream | Nhóm các backend server mà NginX sẽ chuyển tiếp request đến |
Server Block | Tương đương Virtual Host – cấu hình cho mỗi website/domain |
Location Block | Quy định xử lý URL cụ thể trong server |
Static File | File tĩnh (HTML, CSS, JS, ảnh…) mà NginX có thể trả về trực tiếp |
📂 Cấu trúc thư mục NginX (Ubuntu/Debian)
1
2
3
4
5
/etc/nginx/
├── nginx.conf # File cấu hình chính
├── sites-available/ # Chứa các server block riêng biệt
├── sites-enabled/ # Nơi chứa symbolic link để kích hoạt site
└── conf.d/ # Nơi đặt các file config bổ sung
⚙️ Ví dụ cấu hình NginX đơn giản
1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
✅ Đây là cấu hình web server cơ bản:
- Lắng nghe cổng 80
- Trả về file tĩnh từ
/var/www/html
- Nếu không tìm thấy file → trả về lỗi 404
🔁 Reverse Proxy NginX
1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
✅ Dùng để chuyển tiếp request từ NginX đến ứng dụng Node.js đang chạy port 3000.
🔀 Load Balancer đơn giản với NginX
1
2
3
4
5
6
7
8
9
10
11
12
13
upstream backend {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
}
server {
listen 80;
server_name myapp.com;
location / {
proxy_pass http://backend;
}
}
✅ Cân bằng tải giữa 2 server backend trên cùng máy.
📌 Một số lệnh hữu ích
1
2
3
4
sudo nginx -t # Kiểm tra cấu hình có lỗi không
sudo systemctl restart nginx # Khởi động lại dịch vụ NginX
sudo systemctl status nginx # Kiểm tra trạng thái
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ # Bật site
🧠 Tổng kết
- NginX là công cụ cực kỳ mạnh mẽ cho cả front-end lẫn back-end.
- Cấu hình đơn giản nhưng rất linh hoạt để triển khai:
- Web server tĩnh
- Reverse proxy cho backend (Node.js, PHP, Python…)
- Load balancer cho các hệ thống lớn
🚀 Dù bạn làm Dev, DevOps hay sysadmin – NginX là kỹ năng không thể thiếu!
Bài viết này được cấp phép bởi tác giả theo giấy phép CC BY 4.0 .