CyberPanel là một trong khá hiếm hoi các Hosting Control Panel miễn phí hỗ trợ LiteSpeed, vì đa phần chỉ hỗ trợ bản OpenLiteSpeed
Cũng tò mò LiteSpeed Web Server chạy ra làm sao, mà chỉ có vài script hỗ trợ cài đặt auto, nên cài thử CyberPanel , hiệu năng tổng thể trên CyberPanel rất tốt cho 1 dạng Hosting Control Panel, mỗi cái không rõ vì lý do gì đó, khi dùng LiteSpeed vài plugin mình đang dùng nó chạy lỗi, OpenLiteSpeed lại chạy bình thường, không gặp vấn đề gì cả
Về hiệu năng, ở góc độ người dùng cuối, dùng cấu hình VPS thấp, trên 1 trang blog, mình không thấy có sự khác biệt giữa OpenLiteSpeed và LiteSpeed, về tính năng thì LiteSpeed tự load được các cấu hình htaccess, nên không phải khởi động lại dịch vụ, còn lại mình cũng chưa dùng tới thứ gì để thấy sự khác biệt
Nói chung mọi người cứ cài thử bản LiteSpeed trước, nếu thấy chạy mọi thứ không lỗi gì thì dùng bản trả tiền cho oai 😀 còn nếu thấy có trục trặc gì đó, thì cài lại bản OpenLiteSpeed là được
Cài Đặt và Cấu hình
Ở bài này mình dùng VPS UpCloud gói rẻ nhất, cấu hình cụ thể như bên dưới 😛
Ubuntu Server 20.04 LTS (Focal Fossa) CPU 1core MEMORY 1GB STORAGE 25GB LOCATION SG-SIN1
Theo hướng dẫn của tác giả CyberPanel có thể chạy trên hệ điều hành Centos 7.x, Centos 8.x, Ubuntu 18.04, Ubuntu 20.04, AlmaLinux 8
Viết bài này thì mình thử trên Ubuntu 20.04, không rõ tác giả chỉnh sửa gì ở bản hiện tại, mà cài đặt trên Centos 7 lỗi tung nóc ( GDBus Error org freedesktop PolicyKit1 Error Failed -> không tạo được swap) 😀
Thường để chạy tốt trên LiteSpeed/OpenLiteSpeed trên CyberPanel, nên dùng 2Gb RAM trở lên, hiệu quả hơn, vì cần thêm RAM cho LiteSpeed Cache, cài LiteSpeed/OpenLiteSpeed mà không dùng LiteSpeed Cache thì nghe hơi ngược đời 😛
RAM < 1Gb dùng trên Nginx hợp lý hơn
License LiteSpeed Web Server
Bạn có thể vào trang chủ của LiteSpeed để đăng kí bản LiteSpeed Free Starter, có thể dùng cho VPS có 2 GB RAM miễn phí 😛
OpenLiteSpeed là bản miễn phí, không cần đăng kí license
Cài đặt CyberPanel
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
Nếu cài LiteSpeed thì điền license vào, OpenLiteSpeed thì không cần, CyberPanel sẽ hỏi có muốn cài thêm các addon không, yes/no gì tùy bạn, trong trường hợp không hiểu nó đang hỏi gì thì cứ ấn chọn yes 😛
Initialized... CyberPanel Installer v2.3.2 1. Install CyberPanel. 2. Exit. Please enter the number[1-2]: 1 CyberPanel Installer v2.3.2 RAM check : 206/881MB (23.38%) Disk check : 2/25GB (9%) (Minimal 10GB free space) 1. Install CyberPanel with OpenLiteSpeed. 2. Install Cyberpanel with LiteSpeed Enterprise. 3. Exit. Please enter the number[1-3]: 1 Install Full service for CyberPanel? This will include PowerDNS, Postfix and Pure-FTPd. Full installation [Y/n]: n Install Postfix? [Y/n]: n Install PowerDNS? [Y/n]: n Install PureFTPd? [Y/n]: n Do you want to setup Remote MySQL? (This will skip installation of local MySQL) (Default = No) Remote MySQL [y/N]: N Local MySQL selected... Press Enter key to continue with latest version or Enter specific version such as: 1.9.4 , 2.0.1 , 2.0.2 ...etc Branch name set to v2.3.2 Please choose to use default admin password 1234567, randomly generate one (recommended) or specify the admin password? Choose [d]fault, [r]andom or [s]et password: [d/r/s] r Admin password will be provided once installation is completed... Do you wish to install Memcached process and its PHP extension? Please select [Y/n]: n Do you wish to install Redis process and its PHP extension? Please select [Y/n]: Y Would you like to set up a WatchDog (beta) for Web service and Database service ? The watchdog script will be automatically started up after installation and server reboot If you want to kill the watchdog , run watchdog kill Please type Yes or no (with capital Y, default Yes): Y
Mình cài thêm Redis và WatchDog
WatchDog thì nó sẽ tự check MariaDB và LiteSpeed, thấy 2 thèng này sập thì tự bật lên, có điều theo nhiều quản trị, họ rất không thích cách tự restart như thế, theo họ, bản thân Linux và các thứ liên quan chạy cực kì ổn định, nó sập, nghĩa là nó có vấn đề, cần xem log để biết nguyên nhân và giải pháp, chứ chuyện cứ lỗi lại tự bật database lên, xong sập tiếp, lại tự bật ….. rất dễ bị tình huống lỗi nặng hơn
Thực tế giai đoạn vừa dùng Webinoly, mình cũng có hỏi sao không làm phần tự bật mysql, nginx, php lên nếu bị tắt, thì ảnh kiu ” We don’t do that here” =))
Nôm na theo quan điểm của ảnh, quản trị hệ thống mà khi lỗi dùng code auto tự restart, là đám đầu buồi ghẻ rách 😀 thành ra mình cũng khá lú khi CyberPanel set tính năng này là cài đặt mặc định, nói chung tùy quan điểm mỗi người thôi 😀
Góc độ cá nhân thì mình thấy cái này rất thiết thực cho nhu cầu của mình, nên bật WatchDog, hi vọng nó chạy tốt như quảng cáo 😀
Sau khi cài đặt xong thì sẽ có info để login vào quản trị
################################################################### CyberPanel Successfully Installed Visit: https://104.21.21.181:8090 Panel username: admin Panel password: p2vfZW2ViFQ2y3yd ################################################################### If your provider has a network-level firewall Please make sure you have opened following port for both in/out: TCP: 8090 for CyberPanel TCP: 80, TCP: 443 and UDP: 443 for webserver TCP: 21 and TCP: 40110-40210 for FTP TCP: 25, TCP: 587, TCP: 465, TCP: 110, TCP: 143 and TCP: 993 for mail service TCP: 53 and UDP: 53 for DNS service
Tiếp theo thì reboot lại server 1 cái cho sạch sẽ 😀
Kiểm Tra Lại Các Thông Số Sau Khi Cài Đặt
Trông như Swap họ tạo bằng với RAM, nên RAM thực và RAM ảo khá gần nhau, chưa rõ sao trên Ubuntu 20.04, UpCloud set làm sao mà RAM thực còn có 870MB, trên CentOS 7 có tới 907MB lận 😀
root@cyberpanel-bibica-net:~# php -v PHP 7.4.33 (cli) (built: Nov 3 2022 07:46:18) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies root@cyberpanel-bibica-net:~# mysql -V mysql Ver 15.1 Distrib 10.3.37-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 root@cyberpanel-bibica-net:~# /usr/local/lsws/bin/lshttpd -v LiteSpeed/1.7.16 Open (BUILD built: Thu Nov 17 16:18:46 UTC 2022) module versions: lsquic 3.1.1 modgzip 1.1 cache 1.64 mod_security 1.4
MariaDB dùng bản v10.3.37 thì có vẻ hơi cũ, giờ toàn 10.7 cả rồi
Login vào quản trị với thông tin bên trên
Sau khi dạo 1 vòng các menu, tùy chọn của CyberPanel thì mình thấy hơi khó quan sát các tùy chọn, dù nó là giao diện web, không phải gõ dòng lệnh nào, nhưng rối lắm, có điều cũng không quan trọng, vì login vào lần đầu, tạo mất 2-4 phút xong cũng ít ai ngó lại cái bảng này 😀
Cài đặt Domain và WordPress
Cyberpanel quản lý theo dạng hosting, gói mặc định để space có 1000 MB à, không đủ data cho các trang to, vào MODIFY PACKAGE set thành 0 là không giới hạn (thao tác này chỉ phải làm 1 lần)
CREATE WEBSITE: ấn rồi làm theo như hình 😀
Từ List Websites -> Manager để quản lý chi tiết từng domain
Cài đặt WordPress with LSCache, sau đó tạo SSL đều rất đơn giản vì giao diện web, ấn ấn theo hình là được 😀
Nhìn nhiều hình thế thôi chứ click click ấn ấn vào cái là được, rất nhanh
Thử nghiệm tốc độ và chịu tải trên WordPress mặc định
Ở cài đặt mặc định WordPress with LSCache thì mình nói ngắn gọn, đỉnh của đỉnh về hiệu năng và sự đơn giản
Nó thậm chí có thể chịu nổi 5000 kết nối mỗi giây, mà vẫn có thể pass tốt ở thời gian trung bình load trang chỉ ~ 0.8s
Nói chung LiteSpeed Cache rất bá, tiếc là với cá nhân, thì mình không dùng hệ thống cache này, mình thích dùng cơ chế L2 trên Super Page Cache for Cloudflare hơn
Thành ra từ lúc này trở đi, mình sẽ gỡ bỏ plugin LiteSpeed Cache, các bài kiểm tra từ lúc này là không dùng bất cứ cơ chế cache nào nữa
Thử Nghiệm Tốc Độ Và Độ Chịu Tải Trên Bibica.Net
Tiếp theo mình thử move tất cả mọi thứ trên trang bibica.net sang, xem ở 1 trang hoạt động bình thường, database to, dữ liệu nhiều …. gỡ bỏ hết tất cả hình thức cache, xem độ chịu tải nó sẽ làm sao 😀
Nếu dùng Openlitespeed thì sau khi restore data sang, cần khởi động lại Openlitespeed để cập nhập lại các rule và đường link, dùng LiteSpeed thì không cần làm thêm gì
Thử nghiệm ở bài test loader.io với 50 kết nối mỗi giây, không pass nổi, kể cả có pass thì tốc độ trung bình ~10s không thể nào gọi là chạy bình thường được
Thử nghiệm ở 1 con số thực tế hơn là 10 kết nối mỗi giây, CyberPanel pass tốt, thời gian trung bình ~ 2.3s
Cấu Hình PHP
Lấy nội dung từ PHP config, chép đè vào nội dung bên trong
Chủ yếu tăng max_execution_time, memory_limit, upload_max_filesize …. lên cao 1 tẹo, với không giới hạn hàm nào trong disable_functions
Cấu Hình MySQL
Mình đưa ra 2 lựa chọn cho mọi người tham khảo
Đây là cấu hình mà tác giả tối ưu riêng cho các hệ thống < 1 GB RAM
Lấy nội dung từ MySQL config, chép đè vào nội dung tại /etc/mysql/my.cnf
Bản này dùng không cảm giác có sự khác biệt so với bản mặc định lắm, thậm chí thời gian load trang trung bình tại loader.io còn cao hơn
Cấu hình từ OneinStack (Bản này thì hiệu năng tốt hơn)
Lấy nội dung từ OneinStack MySQL config, chép đè vào nội dung tại /etc/mysql/my.cnf
10 kết nối mỗi giây tốc độ trung bình xuống tầm 1.5s
30 kết nối mỗi giây tốc độ trung bình xuống tầm 4.2s
50 kết nối mỗi giây tốc độ trung bình xuống tầm 7s
Cấu Hình Openlitespeed
Phần này mình thấy chỉnh sửa sao cũng na ná cả, nên dùng mặc định là được
Các lỗi mình gặp phải
LiteSpeed không rõ vì lý do nào đó, Duplicator Pro bị lỗi, không tạo được backup, chỉnh sửa 1 tấn các setting thì cũng chạy, nhưng tốc độ xuống chậm rì, dùng OpenLiteSpeed thì chạy bình thường, ý tưởng ban đầu của mình khi viết bài này là để trải nghiệm LiteSpeed hơi toang 😀
Hiệu quả sử dụng thực tế
Nếu bạn không quá thần tượng các con số benchmark, chỉ dùng CyberPanel một cách bình thường, sẽ thấy trải nghiệm của nó rất dễ chịu
Dùng thực tế CyberPanel trên Ubuntu 20.04, OpenLiteSpeed cấu hình thêm 1 chút cho PHP, MySQL thì thấy khá ổn, các ứng dụng nặng nhất mình đang dùng là Simply Static Pro để tự tạo trang tĩnh và Duplicator Pro để tạo backup thì tốc độ trên CyberPanel tương đồng với các script khác
Khi viết 1 bài, thường mình phải save draft tầm …. 20 lần 😀 trên các hệ thống khác mỗi lần ấn save, CPU hoạt động khá nhiều, hơi đơ xíu để load lại trang, CyberPanel cảm giác mượt mà, cũng không đáng kể, rõ hơn có lẽ là Redis, dùng trên các script khác, Redis nó nặng kinh người, mỗi lần load trang nào mà Redis chưa cache thì nó đứng hình hết cho 2-3s, trên CyberPanel cảm giác ổn hơn 😀
CyberPanel dùng OpenLiteSpeed MySQL có vẻ ngon, nó không tối ưu quá về tốc độ hay chịu tải, nhưng chạy không lỗi, các script khác thi thoảng mình thấy Query Monitor báo vài query bị chậm, trên CyberPanel thì ít hơn
Trên Webinoly, Centmin Mod, dù chúng đều rất nhanh, chịu tải cũng khủng bố, nhưng thi thoảng nếu mình cập nhập 5-7 pluign cùng lúc, nó khá dễ bị tình huống sập nhẹ mysql 1-2s, CyberPanel mình cũng thử cập nhập 3-5 pluign cùng lúc thì không thấy vấn đề gì cả
0 * * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/findBWUsage.py >/dev/null 2>&1 0 * * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py hourlyClea> 0 0 1 * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py monthlyCle> 0 2 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/upgradeCritical.py >/dev/null 2> 0 2 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/renew.py >/dev/null 2>&1 7 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 0 0 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py Daily 0 0 * * 0 /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py Weekly */30 * * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '30 Minute> 0 * * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '1 Hour' 0 */6 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '6 Hours' 0 */12 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '12 Hours' 0 1 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '1 Day' 0 0 */3 * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '3 Days' 0 0 * * 0 /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py '1 Week' */3 * * * * if ! find /home/*/public_html/ -maxdepth 2 -type f -newer /usr/local/lsws/cgid -name '.> 09,39 * * * * /usr/local/CyberCP/bin/cleansessions >/dev/null 2>&1
Về WatchDog, lý thuyết nó sẽ tự cập nhập kiểm tra 60s một lần, nếu thấy LiteSpeed, MariaDB sập sẽ tự bật lên (started), mỗi cái mình nhìn trên crontab cũng không thấy, không rõ CyberPanel set cái này ở chỗ nào nữa 😀 mà nó chạy mượt quá, chưa thấy sập để biết tính năng này làm sao 😛
Update 18/05/2023
Sau khoảng 5 tháng chạy hoàn toàn không gặp lỗi gì, hôm nay mình nghịch phá đủ các thể loại plugin, vài plugin có thể do quá cũ, cài vào lỗi tung tóe, thậm chí nặng nhất là làm sập luôn kết nối tới database
Tiện thể nhớ tới WatchDog, nên mình không restar lại mysql lại ngay, mà ngồi thử ấn F5 lại vài lần trên trình duyệt xem thế nào, khá ngạc nhiên là nó có công hiệu thật 😀 tự chạy lại mysql :]] riêng khoản này thôi là đã thấy rất đáng tiền rồi 😛
Tất nhiên, ưu điểm lớn nhất của CyberPanel thì nó là Hosting Control Panel, chuyên dùng cho nhiều trang, nhiều tài khoản, còn mình chỉ đang dùng trên 1 tài khoản, 1 domain, không tận dụng được các ưu điểm này
Kết luận
CyberPanel chạy mặc định, có hiệu năng tổng thể rất khá, cấu hình lại 1 chút thì có thể được 80%-90% so với các script khác về hiệu năng, bù lại do quản lý qua giao diện web nên rất dễ tìm hiểu, ấn ần tầm 15-30 phút là quen …. tạo thêm tài khoản quản trị, domain, database …. rất nhàn, phân quyền các thư mục, tập tin cũng có sẵn …. thậm chí nếu bạn tích hợp Cloudflare vào, khi add domain trên CyberPanel, nó tự tạo các records trên Cloudflare luôn, đỡ rất nhiều thao tác
Sau khi cài đặt, khá hiếm khi bạn phải quản lý cái gì qua ssh, mọi thứ đều có thể quản lý qua giao diện web, rất tiện
Về vấn đề RAM, lý thuyết cài thêm Control Panel nó sẽ tốn thêm 1 chút, có điều dùng thực tế thì mình thấy cũng không đáng quan tâm lắm, không login vào admin thì nó cũng không gọi thêm cái gì ra cả 😛 các cron chạy mặc định rất nhiều, có điều nếu bạn không dùng các tính năng phụ của CyberPanel như tạo ssl, backup … thì cũng khá nhẹ, không thấy vấn đề gì đặc biệt
Cá nhân chỉ tiếc nhất, không hiểu sao LiteSpeed gây lỗi với một số plugin đang sử dụng, còn lại không có gì để phàn nàn, cái này chắc do mình cấu hình sót chỗ nào đó …. mà google mãi không ra giải pháp 😛 nên thôi, dùng OpenLiteSpeed cho nhẹ đầu, gặp vấn đề gì google cũng dễ hơn
Hiện tại mình đang dùng CyberPanel cho thèng bibica.net, tạm thì đang khá hài lòng, nếu phát sinh thêm lỗi gì, sẽ cập nhập sau trong bài
Tạo domain login
Thay link quản trị IP:PORT thành sub.domain.com dễ nhớ
1. Áp dụng cho LiteSpeed
Tạo 1 sub domain tùy ý, có thể là quantri.bibica.net
Add ssl các thứ như bình thường, sau đó vào Rewrite Rules, tạo rule với nội dung như bên dưới, thay 104.21.21.181:8090 bằng IP và port của bạn
RewriteEngine On RewriteRule ^(.*)$ https://104.21.21.181:8090/$1 [P,L]
Lúc này khi gõ quantri.bibica.net nó sẽ hiểu là https://104.21.21.181:8090
2. Áp dụng cho OpenLiteSpeed)
Tạo 1 sub domain tùy ý, có thể là quantri.bibica.net, add ssl các thứ như bình thường
Vào vHost Conf thêm 1 extprocessor có nội dung như bên dưới
extprocessor quantri.bibica.net { type proxy address https://104.21.21.181:8090/ maxConns 1000 pcKeepAliveTimeout 600 initTimeout 600 retryTimeout 0 respBuffer 0 }
Thay 104.21.21.181:8090 bằng IP và port của bạn
Tiếp theo vào Rewrite Rules, thêm 1 rule có nội dung như bên dưới
RewriteRule ^(.*)$ HTTPS://quantri.bibica.net/$1 [P,L,E=PROXY-HOST:quantri.bibica.net]
Khởi động lại OpenLiteSpeed
Lúc này khi gõ quantri.bibica.net nó sẽ hiểu là https://104.21.21.181:8090
Tắt Firewall
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo systemctl mask --now firewalld
Khởi động lại VPS bằng lệnh reboot cho chắc kèo mọi thay đổi đã có hiệu lực
Cập nhập Curl
Không rõ lý do tại sao Curl mặc định CyberPanel dùng khá cũ, bản v7.68.0 ra mắt từ 2020, một số plugin cần bản mới hơn thành ra phải cập nhập lên
sudo apt update && sudo apt upgrade -y sudo apt install software-properties-common apt-transport-https curl -y sudo add-apt-repository ppa:savoury1/curl34 -y sudo apt update sudo apt install curl -y pkill lsphp
Kiểm tra lại verion
curl --version curl 7.87.0 (x86_64-pc-linux-gnu) libcurl/7.87.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 zstd/1.4.4 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3 Release-Date: 2022-12-21 Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
Một số lệnh để xử lý thêm
- Khởi động lại MariaDB
systemctl restart mariadb
Khá khó đỡ, khi bản thân CyberPanel được cài đặt, cấu hình các thứ trên 1 cái database 😀 nên nếu MariaDB bị lỗi thì bạn không thể login vào CyberPanel để mà restart được, phải dùng lệnh 😀
- Khởi động lại OpenLiteSpeed/ LiteSpeed
systemctl restart lsws
Vài addon, plugin cấu hình .htaccess, cần khởi động lại OpenLiteSpeed
- Đổi lại admin password
adminPass newpassword
newpassword là pass mới bạn muốn dùng
Đây là tình huống khá hay gặp, kiểu sau khi cài xong lỡ tắt luôn màn hình, hoặc dùng 1 thời gian quên password 😀
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!