Trong kiến trúc hạ tầng web hiện đại, Nginx đóng vai trò là lớp giao tiếp tầng 7 (Layer 7) quan trọng, đặc biệt là khi cần triển khai nhiều tên miền (domains) trên cùng một địa chỉ IP vật lý. Thay vì triển khai nhiều máy chủ riêng biệt, Nginx sử dụng cơ chế Reverse Proxy kết hợp với Virtual Hosts để phân luồng và xử lý request một cách hiệu quả.
1. Cơ chế định tuyến dựa trên tên miền (Reverse Proxy)
Tính năng nền tảng của Nginx là khả năng phân tích header Host trong gói tin HTTP để xác định tên miền đích và chuyển tiếp request đến port hoặc dịch vụ backend tương ứng.
| Tên miền | Chức năng hệ thống | th>Dịch vụ Backend đích|
|---|---|---|
service.corp.net |
Hệ thống API nội bộ | 192.168.1.10:8080 |
dashboard.corp.net |
Giao diện quản trị | 192.168.1.11:3000 |
public.app.io |
Website khách hàng | 192.168.1.12:5000 |
2. Quản lý máy chủ ảo (Server Blocks)
Nginx sử dụng các khối lệnh server để định nghĩa cấu hình cho từng tên miền. Điều này cho phép tách biệt hoàn toàn cấu hình root, log, và quy tắc xử lý của mỗi website.
server {
listen 80;
server_name blog.tech.io;
root /var/storage/blog-content;
index index.php index.html;
}
server {
listen 80;
server_name shop.tech.io;
root /var/storage/shop-system;
index index.html;
}
3. Xử lý kết nối SSL/TLS
Nginx đóng vai trò là thiết bị chấm dứt SSL (SSL Termination), giúp giảm tải xử lý mã hóa cho các ứng dụng phía sau. Nó hỗ trợ nhiều chứng chỉ số trên cùng một địa chỉ IP thông qua chỉ thị SNI (Server Name Indication).
server {
listen 443 ssl;
server_name secure-api.app.net;
ssl_certificate /etc/nginx/ssl/api_chain.pem;
ssl_certificate_key /etc/nginx/ssl/api_private.key;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://local_backend;
}
}
4. Tối ưu hóa phân phối nội dung tĩnh
Đối với các tài nguyên như hình ảnh, CSS hay JavaScript, Nginx xử lý trực tiếp từ ổ cứng với tốc độ cao hơn nhiều so với các ngôn ngữ backend như Node.js hay Python.
location ~* \.(jpg|jpeg|png|css|js)$ {
root /data/assets;
expires 30d;
access_log off;
}
5. Cân bằng tải (Load Balancing)
Trong trường hợp một tên miền nhận lưu lượng lớn, Nginx có thể phân phối request đến một cụm máy chủ backend (upstream cluster) để đảm bảo tính sẵn sàng và mở rộng theo chiều ngang.
upstream app_cluster {
least_conn;
server 10.0.5.2:9000 weight=3;
server 10.0.5.3:9000;
server 10.0.5.4:9000 backup;
}
server {
server_name high-traffic.site.com;
location / {
proxy_pass http://app_cluster;
proxy_set_header Host $host;
}
}
6. Điều tiết hiệu suất và Bảo mật
Nginx cung cấp các công cụ tích hợp sẵn để nâng cao hiệu suất và bảo mật cho từng domain cụ thể, bao gồm nén dữ liệu, bộ nhớ đệm (caching) và giới hạn tốc độ truy cập (rate limiting).
| Tính năng | th>Mức độ ưu tiên trong đa domain|
|---|---|
| Reverse Proxy & Routing | Bắt buộc |
| Virtual Hosting (Server Blocks) | Bắt buộc |
| Quản lý chứng chỉ SSL/TLS | Cao |
| Load Balancing | Trung bình |
| Bộ nhớ đệm & Nén Gzip | Trung bình |
| Rate Limiting & Chống DDoS | Trung bình |