NGINX là gì
Máy chủ web và reverse proxy
NGINX là một máy chủ web mã nguồn mở hiệu suất cao, reverse proxy, bộ cân bằng tải và bộ nhớ đệm HTTP. Được tạo bởi Igor Sysoev vào năm 2004, hiện thuộc sở hữu của F5 Networks.
Chức năng chính
- Máy chủ web — phục vụ nội dung tĩnh
- Reverse proxy — proxy yêu cầu đến máy chủ backend
- Cân bằng tải — phân phối lưu lượng giữa các máy chủ
- Kết thúc SSL/TLS — xử lý kết nối HTTPS
- Bộ nhớ đệm HTTP — lưu cache phản hồi máy chủ upstream
Ưu điểm
- Kiến trúc bất đồng bộ hướng sự kiện
- Tiêu thụ bộ nhớ thấp
- Hiệu suất cao (10K+ kết nối)
- Cấu hình đơn giản
- Kiến trúc module
Các trường hợp sử dụng điển hình
- Phục vụ tệp tĩnh (HTML, CSS, JS, hình ảnh)
- Reverse proxy cho Node.js, Python, PHP, Java
- API Gateway
- Cân bằng tải giữa các container Docker
- SSL offloading cho microservices
Cấu hình cơ bản
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| Tham số | NGINX | Apache | |---------|-------|--------| | Kiến trúc | Event-driven | Process/Thread | | Tệp tĩnh | Nhanh hơn | Chậm hơn | | .htaccess | Không | Có | | Cấu hình | Tập trung | Phân tán |
Module phổ biến
- ngx_http_gzip_module — nén phản hồi
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — proxy
- ngx_http_upstream_module — cân bằng tải
- ngx_http_rewrite_module — viết lại URL