Nếu nói khách quan, tác giả của Centmin Mod đúng là một thanh niên cuồng hiệu năng, cuồng tới mức điên loạn, giá trị về tốc độ của anh ta được tính theo ms (ờ, nghĩa là tính theo 0.001 s) 😀
Thực sự thì chỉ việc cài vào, là gần như đã có tốc độ tối ưu, hay ít nhất là nhanh nhất trong các bài tool mình từng dùng qua, cơ bản thì dùng Ubuntu và chạy Webinoly mình hài lòng rồi, rất ổn định và có thể vận hành trơn tru mà không cần bạn phải xem gì về phía VPS nữa
Hôm nay rỗi rãi quay lại dùng thử Centmin Mod xem tốc độ thèng bibica.net có cải thiện tí nào không, về cơ bản thì tất cả các tip trick về tăng hiệu năng cho Centmin Mod bạn có thể tham thảo thêm tại đây nếu muốn đẩy tốc độ con VPS lên kịch kim 😀 Centmin Mod LEMP stack performance được chính tác giả Centmin Mod viết ra ^_^
Về lý thuyết, tốc độ nhanh nhất có thể của 1 trang web phần TTFB là bằng giá trị khi PING 😀 bạn làm thế nào mà khi check TTFB nó sát với giá trị PING là đạt
Ở lần chuyển nhà này mình dùng Centmin Mod trên Amazon Lightsail gói 512 MB RAM, location Singapore giá ở thời điểm hiện tại là $3.5 😛
Ah, nếu bạn nào muốn nghịch Centmin Mod thì nên kiếm con VPS nào ổ cứng nhanh nhanh cỡ Vultr hay UpCloud, chạy cái này còn đỡ, mấy dịch vụ ổ cứng cùi kiểu Google hay Amazon mà chạy thì thôi, chờ toàn tính theo giờ với nửa ngày trở lên :]]
Nói chung viết bài này cũng chủ yếu để sau này có chuyển qua lại thì cứ ra làm theo từ trên xuống dưới, bạn nào muốn cấu hình 1 con VPS y chang thèng bibica.net đang chạy thì cứ coi ở dưới là được :]]
Tạo 1 instance trên Lightsail
Chọn hệ điều hành là CentOS, hiện tại Lightsail cũng chỉ mới hỗ trợ v7 thì ta cài v7 thôi, thực tế mình thích dùng v6 hơn, tại chỉ dùng cấu hình thấp nhất 512 MB RAM, location Singapore, Zone A hay C đều được, vì mình thấy nhanh như nhau cả, nếu bạn có nhiều VPS trên Lightsail thì chọn mỗi Zone 1 con cho tiện, tránh tình trạng khi 1 cụm nào đó có vấn đề, đỡ sập hết 😀 thèng ngoirungdui.com đang dùng Zone C rồi nên thèng bibica.net mình chọn Zone A
Cấu hình Lightsail
Chuyển sang sử dụng IP tĩnh (Static IP) để không bị đổi IP khi reset và stop instance trên web
Mở tất cả các port (thật ra chỉ cần mở theo yêu cầu của Centmin Mod là được, có điều mình … lười 😀 mở hết cho nhanh), thực tế thì Vultr họ cũng mở sẵn tất cả các port, firewall thì mình nghĩ là cần, nhưng dành cho người rành về hệ thống, biết cách config thôi
Thêm quyền root cho Amazon Lightsail
Gõ lệnh:
sudo passwd root
(Điền mật khẩu và enter) – làm 2 lần để đổi password cho root
Tiếp theo gõ
sudo yum install nano -y sudo nano /etc/ssh/sshd_config
Thuộc tính PermitRootLogin no, bạn sửa lại là yes và phần PasswordAuthentication no, bạn sửa lại là yes
Nếu có dấu # đằng trước PermitRootLogin và PasswordAuthentication thì bỏ đi
Sau đó bấm Ctrl+O và Ctrl+X để save và exit.
Gõ tiếp lệnh sau để khởi động lại ssh:
sudo service sshd restart
Xong rồi hé, giờ bạn thoát ra và login lại bằng user root và password vừa tạo ở trên là được 😀
Cập Nhập Hệ Điều Hành
yum clean all -y && yum update -y && yum autoremove -y
Kiểm tra lại :
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
Chỉnh về múi giờ Việt Nam
timedatectl set-timezone Asia/Ho_Chi_Minh
Type “date” để kiểm tra lại ngày tháng xem về đúng giờ Việt Nam chưa là được 😛
Cài đặt Centmin Mod
yum -y update; curl -O https://centminmod.com/betainstaller72.sh && chmod 0700 betainstaller72.sh && bash betainstaller72.sh
Bước cài đặt này thường khá lâu, 30-60 phút tùy tốc độ ổ cứng 😛
Total Curl Installer YUM or DNF Time: 185.5118 seconds Total YUM Time: 20.765533203 seconds Total YUM or DNF + Source Download Time: 75.8848 Total Nginx First Time Install Time: 447.6231 Total PHP First Time Install Time: 493.5701 Download From Github Time: 5.6136 Total Time Other eg. source compiles: 557.3601 Total Centmin Mod Install Time: 1574.4382 --------------------------------------------------------------------------- Total Install Time (curl yum + cm install + zip download): 1765.5636 seconds
Như hôm nay mình làm trên Amazon Lightsail thì cài xong mất 1765s ~ 30 phút
Cài xong xuôi thì type thêm dòng bên dưới để vào bảng điều khiển của Centmin Mod
centmin
Nhập email vào để Centmin Mod hoàn thành các bước cài đặt cuối cùng 😛
Bước này cũng hơi lâu 1 tí, xong xuôi thì bạn type “24” để thoát bảng điền khiển của Centmin Mod
Nếu sau khi ấn “24” để thoát ra ngoài mà bạn nó quay lại bảng điều khiển thì type thêm 1 lần “24” để thoát
OK, tiếp theo gõ lệnh reboot để khởi động lại VPS
reboot
Kiểm tra lại các phiên bản
Đầu tiên là kiểm tra phiên bản php
php -v
Ra bản v7.2.12 mới nhất là đúng
PHP 7.2.12 (cli) (built: Nov 18 2018 12:14:28) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.12, Copyright (c) 1999-2018, by Zend Technologies
Tiếp theo kiểm tra phiên bản nginx và GCC
nginx -V
Ra v1.15.6 và gcc 7.3.1 20180303 là đúng
nginx version: nginx/1.15.6 (181118-115929) built by gcc 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC) built with OpenSSL 1.1.1 11 Sep 2018 TLS SNI support enabled configure arguments: --with-ld-opt='-Wl,-E -L/usr/local/zlib-cf/lib -L/usr/local/lib -ljemalloc -Wl,-z,relro -Wl,-rpath,/usr/local/zlib-cf/lib:/usr/local/lib' --with-cc-opt='-I/usr/local/zlib-cf/include -I/usr/local/include -m64 -march=native -DTCP_FASTOPEN=23 -g -O3 -fstack-protector-strong -flto -fuse-ld=gold --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wimplicit-fallthrough=0 -fcode-hoisting -Wp,-D_FORTIFY_SOURCE=2 -gsplit-dwarf' --sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --build=181118-115929 --with-compat --with-http_stub_status_module --with-http_secure_link_module --with-libatomic --with-http_gzip_static_module --with-http_sub_module --with-http_addition_module --with-http_image_filter_module=dynamic --with-http_geoip_module --with-stream_geoip_module --with-stream_realip_module --with-stream_ssl_preread_module --with-threads --with-stream --with-stream_ssl_module --with-http_realip_module --add-dynamic-module=../ngx-fancyindex-0.4.2 --add-module=../ngx_cache_purge-2.5 --add-dynamic-module=../ngx_devel_kit-0.3.0 --add-dynamic-module=../set-misc-nginx-module-0.32 --add-dynamic-module=../echo-nginx-module-0.61 --add-module=../redis2-nginx-module-0.15 --add-module=../ngx_http_redis-0.3.7 --add-module=../memc-nginx-module-0.18 --add-module=../srcache-nginx-module-0.31 --add-dynamic-module=../headers-more-nginx-module-0.33 --with-pcre-jit --with-zlib=../zlib-cloudflare-1.3.0 --with-http_ssl_module --with-http_v2_module --with-openssl=../openssl-1.1.1
Theo mặc định, tác giả cũng đã để chạy các thứ mà họ nghĩ là tốt và cân bằng nhất rồi, mình có thử tham khảo bài Centmin Mod LEMP stack performance, chỉnh sửa lại 1 tí nhưng đều thấy không đáng kể 😀 thậm chí có khi còn chậm hơn, nôm na, mỗi tips hay trick nó phải gán với trường hợp cụ thể, như dùng CPU loại nào, mấy core thì nên chạy GCC gì hay PGO nào, như trường hợp biên dịch lại PHP kiểu PGO sẽ giúp nhanh hơn, có điều chỉ từ 2 core CPU trở lên mới có hiệu quả, còn 1 CPU thì lại yếu hơn, nôm na vấn đề giữa hiệu năng và tính cân bằng nó là thế, bạn phải thật hiểu thì mới giải quyết được
Nói chung cũng đừng quá quan trọng, PHP 7.2.12, Nginx v1.15.6 và gcc 7.3.1 20180303 mình thấy ở thời điểm này là ổn lắm rồi
Tùy biến Centmin Mod
Mặc định rất nhiều tính năng được tác giả Centmin Mod viết ra, nhưng để ở chế độ OFF, và nó nằm trong file custom_config.inc, lý do tác giả không để mặc định, đơn giản cũng là vì “kiểm soát không nổi”, tính năng anh ấy cứ liên tục viết, và nó liên tục chồng chéo lên nhau, cuối cùng anh ấy đành để OFF hết, ai muốn test, nghịch thì vào nó mà tự sướng 😛
nano /etc/centminmod/custom_config.inc
Thêm vào đoạn code bên dưới nếu bạn dùng thêm https (cái này mình không test, vì mình không dùng https)
LETSENCRYPT_DETECT='y'
Ctrl + O -> Enter -> Ctrl + X để save và thoát ra
Cấu hình Centmin Mod
Cài thêm htop, zip, unzip
yum install htop -y yum install zip -y yum install unzip -y
Tổng thể nếu bạn làm theo các bước trên thì ta sẽ có 1 con VPS với thông số khi cài đặt xong thế này 😀
Cài đặt WordPress cho domain bibica.net từ menu 22 như bình thường, tất cả setting mặc định, chủ yếu bước này để add domain bibica.net và nó tạo sẵn 1 cái database, tí nữa mình lấy dùng thôi 😀 bạn nào tạo domain chạy wp từ đầu thì lúc tạo nhớ user, pass, email gì để login là được, các tính năng bảo mật như HttpAuth thích thì dùng, không thì off hết cho tiện 😀
Xong xuôi thì vào thư mục cài đặt domain của bibica.net bằng lệnh cd
cd /home/nginx/domains/bibica.net/public
Chép file wp-config.php về máy để coi info database xong rồi xóa tất cả các file và thư mục có sẵn:
rm -rf *
Upload 2 file installer.php và archive.zip được tạo ra bởi Duplicator Pro vào thư mục public, tiếp theo sửa file hosts trên Windowns, thay domain bibica.net bằng IP mới của VPS Amazon Lightsail
Tiếp theo chạy installer.php để Duplicator Pro restore lại bibica.net là được 😀 info database thì mở file wp-config.php nãy chép về ra xem
Vậy là cơ bản bạn đã restore lại trang web cũ xong rồi
Bật shell_exec trên Centmin Mod
Mặc định, Centmin Mod họ tắt shell_exec vì lý do an toàn, tuy thế dùng VPS riêng, cá nhân mình nghĩ không thành vấn đề, Duplicator Pro và rất nhiều plugin hay script khác cần quyền này để có thể chạy, EE hay Webinoly đều bật shell_exec chạy cả thôi
Vào thư mục
/usr/local/etc/
Bạn sẽ thấy file php-fpm.conf, mở file đó ra, tìm tới dòng cuối sẽ thấy
php_admin_value[disable_functions] = shell_exec
Xóa phần shell_exec đi là được
php_admin_value[disable_functions] =
Khởi động lại php để thay đổi có hiệu lực
service php-fpm restart
Sử dụng sub_filter
Hiện tại mình đang dùng sub_filter để đổi link ảnh sang dịch vụ của Jetpack 😀
File config domain của Centmin Mod họ đứa ở đây:
/usr/local/nginx/conf/conf.d
Bạn vào sẽ thấy bibica.net.conf, thêm vào ít dòng bên dưới vào server {} để khi upload ảnh nó tự đổi sang i2.wp.com
sub_filter_once off; sub_filter_last_modified on; sub_filter hxxp://bibica.net/wp-content/uploads/2017 hxxp://bibica.net/wp-content/uploads/2017; sub_filter hxxp://bibica.net/wp-content/uploads/2018 hxxp://bibica.net/wp-content/uploads/2018; sub_filter hxxp://bibica.net/wp-content/uploads/2019 hxxp://bibica.net/wp-content/uploads/2019;
Sau đó chạy tiếp dòng dưới, reload lại nginx, để thay đổi có hiệu lực
nginx -t service nginx reload
Sau này muốn thêm gì trong file config thì vào thư mục đó 😀
Thiết lập một cronjob thực từ linux’s
crontab -e
Set chạy 1 phút 1 lần cho wp-cron
*/1 * * * * curl https://bibica.net/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Cũng chưa rõ lắm sao mặc định Centmin Mod họ cũng có thêm vào phần này rồi, nhưng lại không để nó chạy, họ thêm dấu # đằng trước?
Thêm vào xong bấm Ctrl+O và Ctrl+X để save và exit.
Nếu bạn tạo WordPress theo tùy chọn 22 mặc định từ bảng điều khiển của Centmin Mod, họ sẽ dùng KeyCDN Cache Enabler để cache, kèm theo đó họ cấu hình thêm để load thẳng cache từ nginx luôn, không thông qua php, nên cực nhanh và nhẹ 😀 lý do nhiều người cài WordPress mặc định vào thấy nhanh khủng khiếp một phần cũng nhờ cái này 😛
Cá nhân nếu có dùng cache thì mình thích dùng WP Rocket và Rocket-Nginx hơn, nó tùy biến tốt cho shop và các vấn đề khác hơn, cache đơn giản kiểu Cache Enabler thì chỉ phù hợp với mấy trang dạng blog kiểu thèng bibica.net thôi, dùng shop hay cài thêm nhiều plugin khác dễ không tương thích lắm
OK, reboot lại VPS 1 phát rồi kiểm tra tổng thể lại các thứ 😛
Các tasks chạy rất ít, RAM cũng dùng rất ít :]] CPU thì khỏi bàn, các tool auto config dạng Centmin Mod họ chuyên sử lý trên các con VPS cấu hình thấp nên tối ưu tài nguyên rất tuyệt vời, gần như tool nào mình từng dùng qua đều rất hài lòng khoản này 😛
Thời gian truy cập tới bibica.net ở lần đầu tiên khoảng 1.1s ở điều kiện mạng FPT …. gói rẻ nhất :]]
F5 lại 1 phát thì còn 0.6s 😀
Tốc độ khi truy xuất vài trang, xong quay lại trang home xuống còn 0.35s 😛
Nếu bạn vẫn còn thấy ngạc nhiên, thì nên biết hiện tại bibica.net không dùng bất cứ phương pháp cache nào cả 😛 tức là về lý thuyết, ta có thể hạ xuống con số load xong trang < 0.35s 😛
Thử cài Cache Enabler vào thì xuống được 0.17s 😛
Nói chung Amazon Lightsail và Centmin Mod giúp bạn có thể đạt tốc độ truy cập tốt nhất từ Việt Nam và các nước khác trên thế giới, chi phí lại rất rẻ, hiện tại chỉ $3.5 một tháng, nếu traffic trang bạn cao có thể sử dụng các hình thức cache khác, tối thiểu 1000 client mỗi giây ở những trang dạng blog là khỏi phải bàn, nếu là các trang thương mại điện tử thì vấn đề khó hơn, có điều mình nghĩ chắc cũng chẳng có cái shop nào có cả ngàn người vào đặt hàng mỗi giây mà …. thiếu tiền cả :]]
Mình cài Centmin Mod tới lui không dưới 10 lần, các cấu hình thử nghiệm cũng rất nhiều, mà Centmin Mod, mỗi lần cài các phần biên dịch php hay nginx thì nó tầm 3-5h mới xong ấy, rất mất thời gian để tìm hiểu :]] có quá nhiều setting, cấu hình mình chưa rõ và hiểu hết, thêm sub_filter hay bật shell_exec đều phải google ra rất nhiều thông tin, thực tế bài này mình viết sơ bộ từ 04/2018, tới hôm nay là 11/2018 mới tạm gọi là sơ bộ hoàn thành đấy 😀
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ị!