Chuyển DirectAdmin sang Nginx Only: website nhanh hơn rõ rệt chỉ với 4 bước

Mặc định, DirectAdmin cài đặt Apache làm webserver cho VPS. Apache có kho tính năng rất lớn, trong đó nổi bật nhất là hỗ trợ file .htaccess, nhưng về hiệu suất và tốc độ phản hồi thì khó lòng so được với Nginx. Nếu website của bạn chạy WordPress và bạn không phụ thuộc vào .htaccess, việc chuyển DirectAdmin sang chế độ Nginx Only sẽ giúp tốc độ tải trang cải thiện rõ rệt chỉ sau vài lệnh.

Nginx Only trên DirectAdmin là gì?

DirectAdmin dùng công cụ CustomBuild để quản lý webserver và PHP. Ở chế độ mặc định, CustomBuild cài Apache (thường kết hợp Nginx làm reverse proxy). Khi chuyển sang Nginx Only, toàn bộ lưu lượng web sẽ do Nginx phục vụ trực tiếp, còn PHP chạy qua PHP-FPM thay vì mod_php. Kết quả là máy chủ tiêu tốn ít RAM hơn, chịu tải đồng thời tốt hơn và trả về nội dung tĩnh nhanh hơn hẳn.

Có một đánh đổi bạn cần biết trước: Nginx không đọc file .htaccess. Các quy tắc rewrite hay bảo mật mà trước đây bạn viết trong .htaccess sẽ không còn tác dụng và phải chuyển thành cấu hình Nginx tương đương. Với website WordPress thuần, phần dưới đây đã có sẵn cách xử lý lỗi 404 thường gặp, nên bạn cứ yên tâm làm theo.

Chuyển DirectAdmin sang Nginx Only: website nhanh hơn rõ rệt chỉ với 4 bước

Chuẩn bị trước khi chuyển đổi

Trước khi bắt đầu, hãy chuẩn bị đủ 3 thứ: quyền root của VPS, một bản sao lưu website và cơ sở dữ liệu để phòng trường hợp cần quay lại, và một khoảng thời gian rảnh. Quá trình biên dịch lại Nginx và PHP có thể tốn khá nhiều thời gian tùy cấu hình VPS, vì vậy đừng thực hiện vào giờ cao điểm và tuyệt đối không ngắt giữa chừng, nếu không máy chủ rất dễ bị lỗi.

Bước 1: Kết nối SSH với quyền root

Đăng nhập vào VPS qua SSH bằng tài khoản root. Nếu bạn dùng tài khoản thường có quyền sudo, hãy chuyển sang root bằng lệnh sudo -i trước khi tiếp tục. Mọi thao tác cấu hình DirectAdmin đều nằm trong thư mục CustomBuild nên bạn sẽ làm việc chủ yếu ở đó.

Bước 2: Chuyển webserver sang Nginx và PHP sang PHP-FPM

Di chuyển vào thư mục CustomBuild rồi đặt webserver thành Nginx, đồng thời chuyển tất cả các phiên bản PHP đang dùng sang chế độ PHP-FPM cho tương thích với Nginx:

cd /usr/local/directadmin/custombuild
./build set webserver nginx
./build set php1_mode php-fpm
./build set php2_mode php-fpm
./build set php3_mode php-fpm
./build set php4_mode php-fpm

Nếu VPS của bạn chỉ cài một hoặc hai phiên bản PHP, bạn chỉ cần chạy các lệnh tương ứng với phiên bản đang có. Lệnh trên chỉ mới ghi nhận lựa chọn, chưa thay đổi gì trên hệ thống.

Bước 3: Cài đặt Nginx và biên dịch lại PHP

Bây giờ tiến hành cài mới Nginx và biên dịch lại PHP theo chế độ đã chọn, sau đó viết lại toàn bộ file cấu hình:

./build nginx
./build php n
./build rewrite_confs

Bước này tốn nhiều thời gian nhất vì CustomBuild phải biên dịch lại PHP từ mã nguồn. Hãy kiên nhẫn chờ cho đến khi terminal báo hoàn tất, không đóng cửa sổ SSH hay tắt máy trong lúc này.

Bước 4: Sửa lỗi 404 WordPress trên Nginx

Sau khi chuyển sang Nginx, cấu hình mặc định của DirectAdmin chưa xử lý đường dẫn đẹp (permalink) của WordPress nên các trang con thường báo lỗi 404 dù trang chủ vẫn vào được. Để sửa, bạn tạo một bản sao của template Nginx dành cho PHP rồi chỉnh sửa:

mkdir /usr/local/directadmin/data/templates/custom
cd /usr/local/directadmin/data/templates/custom
cp ../nginx_php.conf .
nano /usr/local/directadmin/data/templates/custom/nginx_php.conf

Trong trình soạn thảo nano, thêm đoạn cấu hình sau vào cuối file, rồi bấm Ctrl + O để lưu và Ctrl + X để thoát:

location / {
    try_files $uri $uri/ /index.php?$args ;
}

Đoạn này bảo Nginx: nếu không tìm thấy file hay thư mục đúng tên đường dẫn yêu cầu, hãy chuyển yêu cầu sang file index.php của WordPress để WordPress tự xử lý. Cuối cùng, phân quyền lại thư mục template và viết lại cấu hình Nginx cho tất cả tên miền đang chạy trên VPS:

chown -R diradmin:diradmin .
cd /usr/local/directadmin/custombuild
./build rewrite_confs

Sau khi chạy xong, hãy mở thử vài trang con và bài viết trên website để chắc chắn lỗi 404 đã hết.

Mẹo chống gián đoạn với Screen

Quá trình cài đặt kéo dài, chỉ cần mất mạng một lần là phiên SSH đứt và tiến trình biên dịch có thể bị bỏ dở. Cách an toàn nhất là chạy mọi thứ bên trong một phiên Screen. Cài đặt Screen rồi tạo một phiên mới tên setupnginx:

yum -y install screen
screen -S setupnginx

Sau đó thực hiện các bước 2 và 3 như bình thường trong phiên này. Nếu chẳng may mất kết nối, bạn chỉ cần SSH lại vào VPS rồi khôi phục đúng phiên cũ bằng lệnh:

screen -r -d setupnginx

Tiến trình cài đặt vẫn chạy nguyên vẹn trong đó, bạn không phải làm lại từ đầu.

Tổng kết

Chuyển DirectAdmin sang Nginx Only chỉ gồm 4 bước: SSH với quyền root, đặt webserver thành Nginx và PHP sang PHP-FPM, biên dịch lại Nginx và PHP, rồi thêm cấu hình try_files để WordPress hết lỗi 404. Đổi lại, bạn có một webserver nhẹ hơn, phản hồi nhanh hơn và chịu tải tốt hơn hẳn so với Apache. Chỉ cần nhớ sao lưu trước khi làm, chạy trong Screen và không ngắt quá trình giữa chừng là quá trình chuyển đổi sẽ diễn ra suôn sẻ.

👉 Cần VPS để thực hành? Đăng ký VPS BNIX tại đây

  • 🏢 Chuyên thiết kế web cho doanh nghiệp và cá nhân
  • 🤖 Giải pháp tự động hóa cho Doanh nghiệp và cá nhân
  • 📞 0925045760
  • 🌐 thietkewebdian.com
4.7/5 - (35 bình chọn)
Đăng ký
Thông báo về
guest
0 Bình Luận
Oldest
Newest Most Voted
Inline Feedbacks
Xem tất cả
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x