CyberPanel VPS: "Vị cứu tinh" thay thế cPanel đang đắt đỏ và lỗi thời?
Cpanel đắt đỏ, lỗi thời? Ừ, mình cũng thấy thế.
Nói thật chứ, cPanel giờ nó giống như một người đàn ông trung niên vậy. Từng rất hào nhoáng, ai cũng muốn, nhưng giờ thì chậm chạp, hay cằn nhằn (lỗi vặt), mà giá thì cứ như là chưa từng già đi vậy. Nhất là cái vụ bản quyền, cứ tăng đều đều mỗi năm, đến mức nhiều lúc mình tự hỏi: mình đang dùng nó để quản lý website hay để trả lương cho đội phát triển cPanel vậy không biết.
Cái giao diện của nó cũng là một nỗi ám ảnh. Dù biết là không nên quá coi trọng hình thức, nhưng mà mở cPanel lên, nhìn mấy cái icon cổ lỗ sĩ, rồi cái menu dài dằng dặc… Nó cứ có cảm giác như mình đang quay về những năm 2000 vậy đó. Đối với một người muốn mọi thứ phải tinh gọn, hiện đại như mình (hoặc là lười, cũng có thể), thì việc mò mẫm trong đó nhiều lúc chỉ muốn tắt đi cho rồi.
Cũng chính vì những cái sự "chưa được" ấy mà mình, và chắc là rất nhiều anh em khác, cứ đi tìm hoài một cái gì đó mới hơn, ngon hơn, mà quan trọng là kinh tế hơn. CyberPanel xuất hiện, với cái mác "miễn phí", "OpenLiteSpeed tích hợp sẵn", nghe thôi là thấy có vẻ là vị cứu tinh rồi. Có ai không tò mò muốn thử không cơ chứ?

CyberPanel, có thật là cứu tinh?
Ban đầu dùng CyberPanel, phải công nhận là cảm giác nó khác bọt hẳn. Giao diện sáng sủa, hiện đại hơn rất nhiều so với cPanel. Đặc biệt là nó tích hợp OpenLiteSpeed (OLS) sẵn sàng, vụ này là một điểm cộng rất lớn cho mấy bạn cần hiệu năng cao mà không muốn mất công cấu hình tay. Server Minecraft mà mình dựng cho nhóm bạn chơi cuối tuần (mấy đứa thích cái cảm giác xây nhà bằng block), hồi đầu mình cũng lo không biết nó có chạy mượt nổi không. Nhưng mà với OLS thì mọi thứ có vẻ ổn áp hơn nhiều.
Đấy, mọi thứ cứ tưởng ngon lành cành đào cho đến khi…
Update Panel — Một trải nghiệm đáng nhớ (tức là dễ toang)
Mấy anh em làm vận hành thì hiểu, update phần mềm nó giống như đi trên dây vậy. Đa số thì trót lọt, nhưng cứ thỉnh thoảng sẽ có một cú ngã để đời. Mình nhớ hồi cái vụ update CyberPanel lên bản 2.4.4, mọi thứ đang yên lành thì đùng một cái, các website trên server mình lăn ra chết hết. Kiểu như đang chạy bon bon tự nhiên tắt máy ngang vậy đó. Mấy đứa bạn chơi Minecraft cứ nhắn ầm ĩ hỏi sao không vào được server, mình cũng đổ mồ hôi hột.
Mình bắt đầu mò mẫm. Đầu tiên là kiểm tra xem OLS có chạy không. Thần kỳ là cái giao diện WebAdmin (thường chạy ở port 7080) vẫn vào được. Tức là panel vẫn sống, nhưng website thì không. Mình thử dùng lệnh ss -ltnp để kiểm tra port 80/443 xem có bị thằng nào chiếm không, hay OLS nó có lắng nghe không. Kết quả cho thấy OLS không lắng nghe gì cả. Tức là nó không chịu mở cửa cho traffic đi vào.

Mình lục log OLS thì thấy nó cứ báo lỗi đại loại là:
No listener is available, stop server!
Cái lỗi này làm OLS cứ auto-restart liên tục, rồi lại chết, lại restart. Vô vọng. Đúng là như một vòng lặp không lối thoát. Mình bắt đầu nghi ngờ có vấn đề ở file cấu hình. Và đúng như mình dự đoán (sau khi đọc rất nhiều bài trên forum và GitHub issue – cái tật hay đào bới của mình), mình lục được một cái issue trên GitHub của CyberPanel (issue #1609) kể đúng cái case y chang mình. Hóa ra, trong quá trình update, CyberPanel nó sinh ra một cái file httpd_config.conf bị lỗi. Cụ thể là có mấy cái ký tự null byte (ký tự rỗng) chui vào, làm OLS không thể đọc và parse file cấu hình được.
Cách kiểm tra cấu hình OLS có lỗi hay không, anh em có thể dùng lệnh:
openlitespeed -t -f /usr/local/lsws/conf/httpd_config.conf
Nếu thấy báo lỗi thì y như rằng. Và cách fix, theo hướng dẫn của các cao nhân và mình tự tìm tòi, là dùng tr để xóa mấy cái ký tự null byte đó đi:
tr -d '\0' < /usr/local/lsws/conf/httpd_config.conf > /usr/local/lsws/conf/httpd_config.conf.fixed mv /usr/local/lsws/conf/httpd_config.conf.fixed /usr/local/lsws/conf/httpd_config.conf
Sau đó thì mình phải vào WebAdmin panel để rebuild lại listener-to-vHost mappings và điều chỉnh lại PHP LSAPI process limits (ví dụ: LSAPI_CHILDREN=30, maxConns=30) rồi restart OLS là mọi thứ lại hoạt động bình thường. Phù, thở phào nhẹ nhõm. Mà nói thật, vụ này làm mình mất hơn 6 tiếng đồng hồ đó (chỗ này mình không nhớ chính xác là bao nhiêu, nhưng chắc tầm 6-12h gì đó).
Backup đã. Rồi muốn làm gì thì làm.
Chắc anh em cũng biết câu này. Nhưng nói thì dễ, làm thì khó. Hồi mình mới tập tành làm mấy cái VPS, mình cứ nghĩ backup là cứ cài cái plugin A hay cronjob B là xong. Hồi đó mình có một cái server Minecraft nhỏ cho tụi bạn chơi cuối tuần, mình cài cái DriveBackupV2. Nó chạy ngon lành gần 2 năm trời, mình cũng chẳng để ý gì nhiều. Đến lúc server bị lỗi, cần restore lại world 4GB, mình mới tá hỏa ra là file backup từ đời nào đã hỏng bét rồi. Kiểm tra log thì thấy nó báo lỗi từ mấy tháng trước mà mình không để ý. Đó là một bài học đắt giá về việc backup không chỉ là tạo ra file, mà còn phải kiểm tra file backup đó có dùng được hay không.
Với CyberPanel, tính năng backup của nó cũng rất tiện lợi. Nhưng nó cũng có vấn đề của nó. Mình đọc được một case trên GitHub CyberPanel (issue #1608) của một bạn có gần 100 website trên server. Bạn ấy kể là cứ đến tối, khi backup tự động chạy, là CPU Usage nó nhảy lên 100%, server chậm rì, website thì gần như không truy cập được. Kêu ca là thế nhưng bên Support CyberPanel họ trả lời thẳng thừng là: “Khi bạn tạo backup, điều đó có nghĩa là lúc đó việc sử dụng tài nguyên sẽ ở mức tối đa và tất cả việc sử dụng sẽ cao. Đây là hành vi bình thường.” Kiểu “muốn ăn thì lăn vào bếp” vậy đó. Họ khuyến nghị là hãy set thời gian backup vào lúc ít traffic nhất. Nhưng bạn user đó cũng phản hồi lại, backup hàng ngày nó tự động, làm sao mà chọn thời gian tối ưu cho 100 cái website khác nhau được?
Thế nên, dù panel có backup tự động hay không, mình vẫn khuyên anh em nên có một chiến lược backup riêng. Đừng phụ thuộc hoàn toàn vào panel. Có thể dùng rsync đẩy ra S3 (AWS S3 hay MinIO đều được), hoặc dùng một script cronjob đơn giản để nén rồi đẩy lên Google Drive. Quan trọng là phải kiểm tra file backup định kỳ. Ít nhất là một tháng một lần, thử giải nén hoặc restore thử xem nó có hoạt động không. Nói thật: đừng phức tạp hóa, cứ dùng cái gì mình hiểu rõ và dễ kiểm tra nhất.
Cái dashboard đôi khi ăn CPU như uống nước lã
À, một cái nhiều bạn hay quên, hay là không để ý kỹ, đó là chính cái dashboard của CyberPanel cũng có thể ngốn CPU khá kinh khủng, nhất là khi VPS của mình yếu yếu một chút. Mình cũng đọc được mấy cái phàn nàn trên GitHub (issue #1591), có bạn kêu là cứ vào dashboard là CPU nó vọt lên 100%. Kiểu như cái tool giám sát nó lại ngốn nhiều tài nguyên hơn cả thứ nó đang giám sát ấy (cười ra nước mắt). Có lẽ là do cái phần monitoring của nó, nó refresh liên tục mà không có tùy chọn điều chỉnh tần suất.
Cái này thì không có cách fix triệt để đâu. Đành chấp nhận. Hoặc là nếu không quá cần thiết thì hạn chế vào dashboard thường xuyên thôi. Mà đấy, mình dùng CyberPanel từ bản 2.3.8 trên Ubuntu 22, sau đó là 24.04, vẫn thấy mấy cái lỗi như soft lockup (từ issue #1355) hay server không truy cập được 5-6 phút sau khi reboot (từ issue #761) thỉnh thoảng nó vẫn xảy ra. Đúng là cái gì miễn phí thì mình phải chấp nhận đánh đổi một chút, không thể đòi hỏi sự hoàn hảo tuyệt đối được.
Thế rốt cuộc CyberPanel có phải là "vị cứu tinh" không?
Nhớ lại cái server Minecraft nhỏ của mình, hồi mới chuyển từ một cái VPS cũ sang máy mới cài CyberPanel, mình cứ hy vọng mọi thứ sẽ tự động ngon lành. Mình muốn nó nhẹ nhàng, hiệu năng tốt, mà không tốn nhiều công sức cấu hình. Sau một thời gian dùng và trải nghiệm đủ thứ hỉ nộ ái ố với nó, mình thấy CyberPanel nó giống như một người bạn tốt, có tâm huyết nhưng đôi lúc còn hơi “non kinh nghiệm” vậy đó. Nó không hoàn hảo, còn nhiều lỗi vặt, và đôi khi đòi hỏi mình phải xắn tay áo vào “chữa cháy” khá mệt.
Cái cảm giác “vị cứu tinh” hồi đầu nó bay biến dần, thay vào đó là sự thực tế hơn. Nó là một giải pháp tốt, miễn phí, cho những ai chấp nhận được những rủi ro và có chút kiến thức để tự xử lý khi có vấn đề. Nó không phải là một viên thuốc thần kỳ giải quyết mọi vấn đề mà cPanel để lại. Nhưng nếu bạn sẵn lòng học hỏi, tìm tòi (và thỉnh thoảng đào GitHub issue như mình), thì CyberPanel vẫn là một lựa chọn đáng cân nhắc. Còn nếu bạn muốn một giải pháp “cài xong là chạy, không cần nghĩ”, thì có lẽ bạn nên xem xét lại.
