Thêm kho lưu trữ EPEL
Trước khi cài đặt Nginx, cần kích hoạt kho lưu trữ EPEL để truy cập vào các gói phần mềm bổ sung:
yum install epel-release -y
Cài đặt máy chủ Nginx
Sau khi đã có EPEL, tiến hành cài đặt Nginx thông qua trình quản lý gói:
yum install nginx -y
Khởi động và cấu hình tường lửa
Khởi động dịch vụ Nginx và thiết lập tường lửa để cho phép lưu lượng HTTP/HTTPS:
systemctl start nginx<br>firewall-cmd --permanent --add-service=http<br>firewall-cmd --permanent --add-service=https<br>firewall-cmd --reload
Để dịch vụ tự động khởi động cùng hệ thống, sử dụng lệnh:
systemctl enable nginx
Quản lý dịch vụ Nginx
Dưới đây là một số lệnh phổ biến để kiểm soát trạng thái dịch vụ:
- Khởi động:
systemctl start nginx - Dừng:
systemctl stop nginx - Khởi động lại:
systemctl restart nginx - Kiểm tra trạng thái:
systemctl status nginx
Chỉnh sửa cấu hình Nginx
Tệp cấu hình chính nằm tại /etc/nginx/nginx.conf. Mở tệp bằng trình soạn thảo vim:
vim /etc/nginx/nginx.conf
Ví dụ cấu hình reverse proxy chuyển tiếp yêu cầu đến ứng dụng chạy ở cổng 5000:
location / {
proxy_pass http://127.0.0.1:5000/;
proxy_http_version 1.1;
proxy_set_header Connection "keep-alive";
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_cache_bypass $http_upgrade;
}
Sau khi chỉnh sửa, lưu tệp và khởi động lại Nginx để áp dụng thay đổi:
systemctl restart nginx
Cân bằng tải với upstream
Để phân phối tải giữa nhiều máy chủ nội bộ, định nghĩa khối upstream như sau:
upstream backend_nodes {
ip_hash;
server 127.0.0.1:8006 weight=10;
server 127.0.0.1:8007 down;
server 127.0.0.1:8008 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8009 backup;
}
location / {
proxy_pass http://backend_nodes/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Giải thích phương thức phân phối tải
- Round-robin (mặc định): Yêu cầu được phân phối tuần tự đến từng máy chủ.
- Weight: Gán tỷ lệ phân phối theo trọng số, phù hợp khi hiệu năng máy chủ khác nhau.
- ip_hash: Dựa trên địa chỉ IP người dùng để đảm bảo phiên làm việc ổn định.
- backup: Máy chủ dự phòng chỉ được dùng khi các máy chính không khả dụng.
- max_fails & fail_timeout: Quy định số lần thử thất bại trước khi tạm loại khỏi nhóm.
Phân biệt X-Real-IP và X-Forwarded-For
Khi có nhiều lớp proxy:
X-Real-IP: Chỉ lưu địa chỉ IP thực của client.X-Forwarded-For: Lưu danh sách các IP đã đi qua, mỗi proxy thêm một địa chỉ vào cuối chuỗi.
Ví dụ: X-Forwarded-For: 203.0.113.1, 198.51.100.1 cho thấy yêu cầu đi từ client qua hai proxy.
Gỡ cài đặt Nginx (nếu cần)
Nếu muốn gỡ hoàn toàn Nginx và cấu hình:
yum remove nginx -y<br>yum autoremove -y
Lệnh này xóa gói Nginx và các phụ thuộc không còn cần thiết.