Nhật ký thay đổi

Những thay đổi của ZoPanel qua từng phiên bản: tăng cường bảo mật, hiệu năng khi tải cao, cập nhật an toàn hơn, backup và vận hành hằng ngày.

Bản cập nhật được cài ngay trong panel hoặc bằng lệnh zopanel update. Mọi bản cập nhật đều có chữ ký, được agent root kiểm tra lại, và tự động rollback nếu phiên bản mới không hoạt động ổn định.

2026-10 — Bản phát hành bảo mật và vận hành

Bản phát hành lớn nhất từ trước tới nay. Bản này đã qua nhiều vòng kiểm tra bảo mật nội bộ và được đo đạc trên VPS thật dưới tải nặng.

Hiệu năng và năng lực

  • Tự cấu hình theo server, từ VPS 2 GB tới máy lớn. Trang Cài đặt hiển thị kế hoạch bộ nhớ: giới hạn dành cho khách hàng và phần dự trữ cho hệ thống.
  • PHP theo nhu cầu. Pool PHP của website khởi động khi có yêu cầu đầu tiên và dừng khi rảnh, nên tài khoản ít truy cập không tốn bộ nhớ PHP. Khởi động lại và đổi phiên bản PHP không làm rơi yêu cầu.
  • Thức dậy nhanh hơn: mã PHP đã biên dịch được lưu trên đĩa, và pool luôn sẵn sàng khi bạn chọn chế độ "luôn bật".
  • Nén bộ nhớ trong RAM. Trên Linux 6.8 trở lên, bộ nhớ rảnh của khách được nén ngay trong RAM thay vì chạm giới hạn, và không bao giờ bị swap ra đĩa.
  • Hồi phục sau quá tải trong vài phút. Hàng đợi yêu cầu ngắn giúp quá tải được xử lý nhanh thay vì sụp đổ dây chuyền; khi bộ nhớ thiếu trầm trọng, các yêu cầu đã chờ quá lâu bị huỷ và người truy cập thấy trang "đang bận", nhờ đó server hồi phục ngay sau khi tải giảm. Đo trên server thử nghiệm: trở lại bình thường trong 2 đến 5 phút sau quá tải nặng.
  • Page cache: trang hết hạn được làm mới ở chế độ nền và giữ trong một ngày; trang cache cũng được phục vụ cho người truy cập đến từ chiến dịch quảng cáo; trang cache của website WordPress được xoá khi nội dung thay đổi; cache được phân biệt theo website, không chỉ theo tên host.
  • Tác vụ định kỳ và việc tạo tài khoản vẫn nhanh khi có hàng trăm tài khoản; cấu hình web server được áp dụng theo lô sau khi cập nhật.
  • Đã sửa: trên server có vài trăm website, nginx có thể giữ cấu hình cũ sau khi thay đổi.
  • Dung lượng database trong danh sách được đọc từ file trên đĩa, nên danh sách tải nhanh.

WordPress

  • Tác vụ định kỳ do server chạy. Với bản cài mới, wp-cron chạy theo lượt truy cập bị tắt và một bộ hẹn giờ chạy các tác vụ đến hạn mỗi 5 phút, dưới quyền tài khoản, ở mức ưu tiên thấp. Bài hẹn giờ và email của cửa hàng chạy đúng giờ trên website ít truy cập, còn website đông khách bớt được một yêu cầu thừa mỗi lượt truy cập. Bộ hẹn giờ theo đúng phiên bản PHP của website, tạm dừng khi tài khoản bị khoá và có thể tắt cho từng website.
  • Ứng dụng WordPress và PHP mới được làm nóng ngay sau khi cài, trước người truy cập đầu tiên.
  • Quá trình cài tự thử lại việc tải WordPress khi mạng chập chờn, và file tải về của wp-cli không còn bị để lại trong tài khoản.

Bảo mật

  • Ứng dụng Docker được cách ly bằng user namespace; dữ liệu ứng dụng không mở cho tài khoản hosting.
  • Giới hạn gửi mail không thể bị lách từ tiến trình của tài khoản: PHP dòng lệnh, cron, chuyển tiếp, catch-all, địa chỉ có dấu cộng và header Bcc đều được tính.
  • Root không truy cập file qua liên kết của khách. Backup, dump, khôi phục, đổi quyền sở hữu và quét mã độc đọc file của khách dưới quyền chính khách đó hoặc từng bước đường dẫn một, không bao giờ đi theo symlink của tài khoản.
  • Đại lý không thể cấp vượt gói của chính mình: gói, tổng dung lượng và số website luôn nằm trong giới hạn, trừ khi cho phép bán vượt.
  • Xác thực hai lớp: số lần thử bị giới hạn trước khi kiểm tra mã, mã không dùng lại được, có mã khôi phục, và có thể bắt buộc 2FA cho quản trị viên hoặc cho mọi người.
  • Danh sách IP cho phép áp dụng cả với kết nối từ chính server.
  • API token bị thu hồi khi đổi mật khẩu hoặc 2FA, chỉ tạo được khi nhập mật khẩu, và không thể đổi cài đặt bảo mật, backup, hook hay thông tin đăng nhập của quản trị viên, cũng không đọc được dữ liệu bí mật. Đăng nhập một chạm từ hệ thống billing chỉ mở phiên của khách hàng.
  • Redis dùng chung từ chối script đối với user của tài khoản.
  • Dữ liệu bí mật được mã hoá khi lưu: cài đặt panel, secret 2FA, mật khẩu database ngoài, biến môi trường ứng dụng.
  • Nhật ký hoạt động chống sửa đổi (chuỗi băm, hiển thị trong Security Center), có bản sao trong system journal và tuỳ chọn gửi ra syslog bên ngoài.
  • Khu cách ly mã độc chuyển vào thư mục chỉ root truy cập được.
  • Chỉ thị nginx tuỳ chỉnh được kiểm tra theo danh sách cho phép; proxy tới chính địa chỉ của server bị từ chối.
  • Website là tên miền con của tên miền thuộc tài khoản khác cần quản trị viên tạo.

Cập nhật và khôi phục thảm hoạ

  • Cập nhật an toàn: chụp snapshot database trước, kiểm tra sức khoẻ phiên bản mới, và tự động rollback cả binary lẫn database nếu không ổn định. Lệnh zopanel rollback hoàn tác bản cập nhật thủ công.
  • Khôi phục thảm hoạ: bản backup cấu hình giờ chứa toàn bộ database của panel cùng các khoá, được mã hoá; zopanel ctl dr-restore dựng lại panel trên server mới. Snapshot database cục bộ hằng ngày được giữ 7 ngày. Tài liệu có quy trình khôi phục thảm hoạ chi tiết.
  • Bộ cài đặt: cập nhật server mới trước, cài kernel mới hơn khi được hỗ trợ (chỉ hỏi một lần, khởi động lại một lần), và nhận license key bằng --license.

Backup

  • Backup từ xa được mã hoá trước khi tải lên, checksum được kiểm tra sau khi tải về và trước mỗi lần khôi phục, kho backup được kiểm tra hằng tuần.
  • Backup đầy đủ và gia tăng hằng đêm bị gián đoạn do khởi động lại sẽ được chạy tiếp hoặc bù, không báo động nhầm.
  • Không bắt đầu backup khi đĩa gần đầy.

Vận hành

  • Watchdog dịch vụ: các dịch vụ được kiểm tra mỗi phút và tự khởi động lại khi dừng hoặc treo, mỗi sự kiện đều có cảnh báo.
  • Tạm khoá dừng mọi thứ: đăng nhập mail, FTP, cron, ứng dụng Node.js và Python, ứng dụng Docker và Redis. Thư đến vẫn được giữ, website trả về mã 503.
  • Tài khoản bị huỷ được giữ trong thời gian ân hạn (mặc định 7 ngày): file và hộp thư được chuyển sang chỗ khác, database được dump trước. Việc huỷ bị gián đoạn sẽ tiếp tục từ chỗ đã dừng.
  • Cảnh báo mới: hàng đợi mail tăng, IP server bị đưa vào blacklist, tài khoản chưa có backup gần đây, chứng chỉ sắp hết hạn, cập nhật thất bại và có phiên bản mới.
  • Lịch sử tài nguyên từng tài khoản (CPU, bộ nhớ, I/O đĩa) và uptime website theo giờ, kèm biểu đồ.
  • zopanel ctl doctor và zopanel ctl support-bundle để chẩn đoán; advisor báo cáo tình trạng nén bộ nhớ.
  • Chứng chỉ của chính panel tự gia hạn, mail và webmail tự nhận chứng chỉ mới.
  • Việc tải image Docker và cài đặt lưu trữ object tự thử lại khi registry hoặc mạng gặp lỗi.

Chuyển đổi

  • Nhập từ cPanel mang theo DNS zone (kể cả bản ghi CNAME www), tài khoản FTP với mật khẩu cũ và chứng chỉ SSL.

License

  • Gói và giá được quản lý trên license server; license có giới hạn số database. Gói Free cho phép 10 website và 10 database mỗi server.

Sửa lỗi

  • Bộ chọn chế độ PHP khi rảnh hiển thị ngay giá trị đã lưu trên server có hàng trăm website.
  • Tab Công cụ của website không còn lỗi khi website chưa có chuyển hướng, trang lỗi hay cài đặt PHP.
  • Trang Hooks tải được khi chưa cấu hình webhook nào.
  • Khách hàng mở được nhật ký hoạt động và App Store, đăng nhập webmail một chạm không còn bị trình duyệt chặn.
  • Xoá tài khoản cũng xoá các ứng dụng Docker của tài khoản đó.
  • Giới hạn được áp dụng khi tạo lại username đã từng dùng; user database kết nối được qua 127.0.0.1.