Chuyển đến nội dung chính (Skip to content)
Mục lục bài viết
Nginx

Di trú NGINX từ CentOS sang Rocky Linux 9

Di trú NGINX từ CentOS sang Rocky Linux 9

Dựng máy chủ mới, kiểm tra cấu hình và SELinux, thử lưu lượng trước cutover; chuẩn bị rollback khi chuyển NGINX từ CentOS Linux đã hết hỗ trợ.

Trước khi bắt đầu. Quy trình đề xuất dựng máy mới song song. Mức gián đoạn phụ thuộc DNS, VIP, kết nối đang mở và ứng dụng; không coi di trú không gián đoạn là kết quả mặc định.

Sơ đồ kiểm tra di trú nginx centos rocky linux
Hai nhánh kiểm tra ban đầu: chưa đủ kiểm tra hoặc đủ kiểm tra và rollback. Chạm vào hình để mở bản lớn.

1. Thông báo chính thức về việc dừng hỗ trợ (EOL) của CentOS

Lưu ý quan trọng cho các kỹ sư hệ thống: Dự án CentOS Linux truyền thống đã chính thức dừng vòng đời phát triển (End-of-Life - EOL). Cụ thể, CentOS 8 đã kết thúc hỗ trợ vào ngày 31/12/2021 và CentOS 7 đã chính thức dừng nhận toàn bộ bản vá bảo mật từ ngày 30/06/2024.

Việc tiếp tục vận hành các cụm máy chủ NGINX Production quan trọng trên nền CentOS không còn an toàn do các kho lưu trữ chính thức đã bị đóng băng, không nhận thêm các bản vá lỗi cho các lỗ hổng bảo mật zero-day nghiêm trọng.

Minh họa CentOS Linux cũ → Cutover có kiểm soát → Rocky Linux 9 mới
Luồng khái niệm: CentOS Linux cũ → Cutover có kiểm soát → Rocky Linux 9 mới. Chạm vào hình để mở bản lớn.

2. Tại sao nên chọn Rocky Linux 9 hoặc AlmaLinux 9 thay thế?

Để đảm bảo sự kế thừa 100% tính tương thích mã nguồn nhị phân (Bug-for-Bug Compatible) với hệ sinh thái Red Hat Enterprise Linux (RHEL), cộng đồng mã nguồn mở đã xây dựng hai bản phân phối tiêu chuẩn doanh nghiệp hàng đầu:

  • Rocky Linux 9: Được sáng lập bởi Gregory Kurtzer (người đồng sáng lập ban đầu của CentOS), được hỗ trợ bởi các tập đoàn công nghệ lớn và cam kết giữ vững mô hình mã nguồn mở miễn phí cho doanh nghiệp.
  • AlmaLinux 9: Do CloudLinux thành lập và được dẫn dắt bởi một tổ chức phi lợi nhuận độc lập, hỗ trợ cập nhật ổn định dài hạn tới năm 2032.

3. Bảng chuyển đổi lệnh quản trị hệ thống YUM sang DNF

Tác vụ quản trị Lệnh trên CentOS cũ (YUM) Lệnh chuẩn trên Rocky Linux 9 (DNF)
Cập nhật toàn bộ hệ thống sudo yum update -y sudo dnf upgrade --refresh -y
Cài đặt gói NGINX sudo yum install -y nginx sudo dnf install -y nginx
Quản lý repository yum-config-manager --add-repo ... dnf config-manager --add-repo ...
Dọn dẹp cache gói cài sudo yum clean all sudo dnf clean all

4. Cấu hình SELinux cho NGINX load balancer trên Rocky Linux 9

Trên Rocky Linux 9, hệ thống bảo mật SELinux (Security-Enhanced Linux) luôn được bật ở chế độ Enforcing theo mặc định. Khi NGINX hoạt động như một Load Balancer hoặc Reverse Proxy để chuyển tiếp kết nối sang các cổng backend (ví dụ port 8080, 3000, 5000), SELinux sẽ chặn kết nối này và ghi nhận lỗi vào /var/log/audit/audit.log:

type=AVC msg=audit(...): avc:  denied  { name_connect } for ... comm="nginx" dest=8080 ...

Để cho phép NGINX kết nối mạng hợp lệ ra bên ngoài mà không làm tắt SELinux, bạn chỉ cần thực thi lệnh sau:

# Cho phép NGINX kết nối mạng tới các máy chủ upstream backend
sudo setsebool -P httpd_can_network_connect 1

# Xác nhận trạng thái của biến boolean
getsebool httpd_can_network_connect

5. Quy trình di trú có kiểm soát (cutover và rollback)

Để di chuyển cụm NGINX Load Balancer từ máy chủ CentOS cũ sang máy chủ Rocky Linux 9 mới mà giảm nguy cơ gián đoạn và có đường rollback:

  1. Khởi tạo máy chủ Rocky Linux 9 mới: Cài đặt NGINX Mainline từ Official Repository và mở tường lửa Firewalld (cổng 80/tcp, 443/tcp, 443/udp).
  2. Sao chép cấu hình: Chuyển toàn bộ các file trong thư mục /etc/nginx/conf.d/ và chứng chỉ SSL từ máy chủ CentOS cũ sang máy chủ Rocky Linux mới.
  3. Kiểm tra cú pháp cục bộ: Chạy sudo nginx -t trên máy chủ mới để đảm bảo mọi đường dẫn và directive đều hợp lệ.
  4. Bật quyền SELinux: Chạy sudo setsebool -P httpd_can_network_connect 1.
  5. Chuyển đổi lưu lượng mạng: Cập nhật bản ghi DNS hoặc chuyển IP phụ (Floating IP/Virtual IP) sang máy chủ Rocky Linux mới.
  6. Theo dõi và hạ giải máy chủ cũ: Sau khi xác nhận toàn bộ lưu lượng đã chuyển sang máy chủ mới ổn định trong 48 giờ, tiến hành sao lưu dữ liệu và tắt máy chủ CentOS cũ.

6. Tài liệu tham chiếu cân bằng tải NGINX đầy đủ

Toàn bộ tài liệu kỹ thuật chi tiết về cấu hình Upstream, thuật toán cân bằng tải, cơ chế Failover và quản lý phiên làm việc Layer 7 đã được tích hợp đầy đủ và cập nhật trong cẩm nang:

👉 Cẩm nang NGINX Load Balancing & Layer 7 Session Persistence: Thuật toán, Upstream và High Availability

Các mốc EOL ở trên nói về CentOS Linux, không áp dụng chung cho mọi phiên bản CentOS Stream. Trước cutover, lưu bản cấu hình và thời điểm thay DNS/VIP; giữ máy cũ sẵn sàng. Nếu tỷ lệ lỗi hoặc độ trễ vượt ngưỡng đã thống nhất, đưa lưu lượng về máy cũ và phân tích log trước khi thử lại.

Nguồn đối chiếu và kiểm tra trước khi áp dụng

Các địa chỉ example.com, IP riêng và đường dẫn trong ví dụ cần thay theo môi trường thực tế. Các sơ đồ trong bài là minh họa khái niệm, không phải bằng chứng thử nghiệm trên hệ thống của bạn.

Trước khi áp dụng: sao lưu file cấu hình bị đổi, chạy sudo nginx -t, chỉ reload khi kiểm tra thành công, rồi xác nhận endpoint, error log và chức năng ứng dụng. Nếu lỗi xuất hiện, phục hồi file đã sao lưu, kiểm tra cú pháp và reload lại; không xóa hàng loạt cấu hình để thử.

Tìm hiểu thêm

Xem toàn bộ lộ trình Nginx