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
2. Trên CentOS/RHEL
3. Trên Windows (phiên bản không chính thức)
-
Giải nén và chạy
nginx.exe
III. Cấu trúc thư mục Nginx (Ubuntu mặc định)
Đường dẫn | Mô tả |
---|---|
/etc/nginx/nginx.conf | File 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/html | Thư mục chứa mã nguồn web mặc định |
IV. File cấu hình Nginx cơ bản
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
2. Cân bằng tải
3. SSL với Let's Encrypt (qua Certbot)
VI. Các lệnh quản lý Nginx
Lệnh | Mô tả |
---|---|
sudo systemctl start nginx | Khởi động Nginx |
sudo systemctl stop nginx | Dừng Nginx |
sudo systemctl restart nginx | Khởi động lại |
sudo nginx -t | Kiểm tra lỗi cấu hình |
sudo systemctl reload nginx | Tả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ầu | Có 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
Đăng nhận xét