Hiện tại, khi bạn đọc thấy bài này, thì mình đã chuyển trang chủ và các addon đi kèm của thèng bibica.net bao gồm Artalk, Umami, Cloudinary, WireGuard Easy về location Việt Nam, cụ thể là trên gói BudgetKVMVN-2 của GreenCloud
Location Việt Nam cải thiện duy nhất là tốc độ khi Việt Nam đứt cáp quốc tế, còn bình thường, nếu mạng Việt Nam ổn định, sự khác biệt không đáng kể, cụ thể nếu dùng location Singapore, tốc độ trang home thèng bibica.net khoảng 0.4s, khi dùng location Việt Nam, khoảng 0.1-0.2s, nhìn % thì nhanh hơn gấp 2-4 lần, nhưng thực tế chắc khó ai quan cảm nhận được sự khác biệt 0.1-0.2s như thế
Bảo mật, chịu tải, thao tác backup, restore …. hay các tính năng thêm thắt gần như đều thua cấu hình cũ do không tận dụng được cơ sở hạ tầng của Cloudflare, phần vì nhiều năm nay mình cũng đã quen các cấu hình từ Cloudflare, nên khi quản trị lại từ webserver khá là ngu người 😛
Ví dụ response header, dùng Cloudflare mình có thể tùy biến, thêm, xóa các header thoải mái, dùng Nginx muốn thêm header thì thoải mái, nhưng xóa header khá là phiền
Về vấn đề bảo mật, nếu bạn xem các bài viết trước đây, mình luôn tắt firewall trên OS, nó hoàn toàn không có ý nghĩa nếu bạn dùng Cloudflare 😛 tại có ai biết IP của server là gì đâu mà phá :]] chưa kể bạn có thể cấu hình, bắt buộc user phải truy cập qua Cloudflare -> tới site, hạn chế rất nhiều các truy cập rác, spam ….
- Ảnh trên trang chủ thì mình dùng Cloudinary để xử lý nén ảnh, tạo thumbnail, sau đó sử dụng reverse proxy kết hợp FastCgi Cache để lưu các ảnh này xuống localhost
- Trên Artalk các avatar và ảnh ở comment mình cũng dùng Cloudinary để xử lý nén ảnh, sau đó cũng sử dụng reverse proxy kết hợp FastCgi Cache để lưu các ảnh này xuống localhost
2 phần này thì chủ yếu làm màu :]] thực tế khi dùng host tại VN rồi thì bạn load trực tiếp cái ảnh chưa nén, có khi nó còn nhanh hơn cả ảnh đã nén qua Cloudinary hoặc Jetpack Photon :]]
- Umami và WireGuard Easy thì cài đặt như bình thường là đủ
- Cache trang lúc này thì mình dùng FlyingPress, cơ chế preload hiệu quả
Theo cách vận hành này, dễ nhất là dùng Webinoly, do nó đã có sẵn các lệnh liên quan tới FastCgi Cache cho Reverse Proxy, việc cài đặt sẽ nhanh và đơn giản hơn
Webinoly hỗ trợ cơ chế backup toàn server, chỉ cần cấu hình lần đầu tiên, sau đó chuyển server chỉ cần restore lại là xong, toàn bộ các cấu hình liên quan tới SSL, Domain, data và database đều sẽ được cài đặt chính xác
Cài đặt và cấu hình OS
- Dùng BudgetKVMVN-2 của GreenCloud thì việc đầu tiên là Reinstall OS về Ubuntu 22.04
Lý do là bản OS mặc định của GreenCloud họ cài đặt bản rút gọn quá, đôi lúc cài đặt các script auto viết thiếu các lệnh setup, rất dễ văng lỗi mà không hiểu tại sao, thời gian xử lý rất phiền, nên cứ reinstall OS về mặc định cho dễ kiểm soát
- Bản Reinstall OS mình thấy thiếu hostname (
bibica-net
), có thể bổ xung đơn giản bằng cách thêm vào bên trong file/etc/hosts
127.0.0.1 localhost bibica-net
- Tiếp theo là tắt IPv6 (không chắc lắm về ý này, vì khi bật mặc định IPv6 băng thông mình thấy nó rất loạn, nói chung là nên tắt, vì IPv6 chẳng có tác dụng gì cả :D)
# Disable IPv6 echo '# Disable IPv6' >> /etc/sysctl.conf echo 'net.ipv6.conf.all.disable_ipv6=1' >> /etc/sysctl.conf echo 'net.ipv6.conf.default.disable_ipv6=1' >> /etc/sysctl.conf echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf sysctl --system # Cron reload sysctl crontab -l > reload_sysctl echo "@reboot sysctl --system >> ./out 2>&1 <&- &" >> reload_sysctl crontab reload_sysctl
Cài đặt Webinoly
Nếu đây là lần đầu tiên bạn biết tới Webinoly thì có thể cài đặt các lệnh tuần tự như bên dưới
# Update locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 sudo apt update -y sudo apt install -y htop zip unzip screen nano wget curl gpg # Webinoly Installation sudo wget -qO weby qrok.es/wy && sudo bash weby -clean sudo wget --no-check-certificate https://raw.githubusercontent.com/bibicadotnet/bibica-net-no-cloudflare/main/webinoly.conf -O /opt/webinoly/webinoly.conf sudo stack -lemp -build=light # Tắt Firewall sudo apt remove iptables-persistent -y sudo ufw disable sudo iptables -F # Optimization PHP, MariaDB sudo wget --no-check-certificate https://raw.githubusercontent.com/bibicadotnet/bibica-net-no-cloudflare/main/php.ini -O /etc/php/7.4/fpm/php.ini sudo service php7.4-fpm restart sudo wget --no-check-certificate https://raw.githubusercontent.com/bibicadotnet/bibica-net-no-cloudflare/main/my.cnf -O /etc/mysql/my.cnf sudo service mysql restart
Đây là cấu hình mình dùng trên Webinoly, cấu hình này, gần như không thua hiệu năng bất cứ script auto nào đang có ngoài thị trường, dùng PHP 7.4 nên nó tương thích mạnh hơn với nhiều plugin trên WordPress, máu chó hiệu năng thì bạn có thể cài bản v1.17.8 hỗ trợ PHP 8.3, vừa mới được tác giả ra mắt cách đây ít giờ
Cài đặt Reverse Proxy FastCgi Cache
Cấu hình tương tự với bài cũ mình từng viết cách đây khá lâu, nếu bạn nào dùng VPS của GreenCloud thì mình nghĩ không cần cache xuống RAM, chỉ cần lưu cache xuống SSD là đủ, vì các ổ cứng của GreenCloud có tốc độ rất nhanh, đọc > 1GB/s, ghi ~ 500MB/s
FastCgi Cache có tác dụng lớn nhất ở các avatar từ Gravatar, load trực tiếp ~ 1000ms, khi dùng FastCgi cache xuống ~ 5-10ms
- Do đợt này mình dùng trực tiếp location Việt Nam, không còn dùng Cloudflare nữa, nên SSL dùng qua Let’s Encrypt
sudo site bibica.net -ssl=on -wildcard
Mọi subdomain phụ mình dùng đều từ domain bibica.net, nên có thể dùng lệnh trên để tạo SSL dùng chung cho tất cả subdomain
Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/analytics.bibica.net/fullchain.pem Key is saved at: /etc/letsencrypt/live/analytics.bibica.net/privkey.pem This certificate expires on 2024-02-27. These files will be updated when the certificate renews.
Có 2 file ssl đó rồi thì cấu hình tương tự như khi dùng SSL của Cloudflare
15 3 * * 7 certbot renew
Mặc định sau khi tạo ssl, Webinoly sẽ bổ xung thêm cron tự renew trước khi ssl hết hạn trong khoảng 30 ngày, khoản này thì mình cũng không chắc lắm về sự hiệu quả, vì trước đây thấy mấy cái ssl từ Let’s Encrypt thi thoảng lỗi, không tự renew, Let’s Encrypt cũng rất phiền vì đôi lúc bạn tạo mới nhiều ssl trong 1 thời gian ngắn, nó không cho tạo luôn 😀
- Nói chung là mình rất không thích dùng Let’s Encrypt, đợt này dùng tạm xem thế nào
Cấu hình Artalk, Umami, WireGuard Easy chạy qua docker thì cơ bản như các bài viết giới thiệu cũ
Backup và restore
Sau khi chuyển sang dùng location Việt Nam, mình mới đọc hướng dẫn tính năng backup và restore toàn server trên Webinoly, vì đợt này dùng gần như toàn bộ các dịch vụ trên 1 VPS, các cấu hình nhỏ bên trong Nginx khá nhiều, copy thủ công rất dễ nhầm
Việc backup và restore toàn server trên Webinoly khá mượt, có thể lưu được các cấu hình gốc của Webinoly cho tới các cấu hình SSL, Nginx, Domain, data của website kèm database, việc restore hoàn toàn tự động, không phải ấn yes hay no gì cả, restore xong chỉ cần đổi DNS là WordPress chạy luôn 😀
Nếu thích, bạn có thể tạo 1 file bash để backup toàn bộ các dịch vụ hàng ngày đang dùng, như bên dưới
# backup mỗi ngày toàn trang sudo webinoly -backup=local -export mv webinoly_full_backup_* webinoly_full_backup tar -cvf backup.tar /root/Artalk /root/Umami /root/wg-easy webinoly_full_backup rclone copy backup.tar cloudflare-r2:cdn-bibica-net/xxxxxx rm backup.tar webinoly_full_backup
Sau này khi cần đổi sang server khác, thì chạy cài đặt tự động như sau
# Webinoly Installation sudo wget -qO weby qrok.es/wy && sudo bash weby -clean sudo wget --no-check-certificate https://cdn.bibica.net/xxxxxx/backup.tar tar -xvf backup.tar mv /root/root/Artalk /root/Artalk mv /root/root/Umami /root/Umami mv /root/root/wg-easy /root/wg-easy rm -r /root/root sudo webinoly -backup=local -import=full -file=/root/webinoly_full_backup rm backup.tar webinoly_full_backup
Với các dịch vụ phụ như Artalk, Umami, WireGuard Easy, chạy qua docker, mình cũng đã sửa lại các cấu hình tại bài viết liên quan để có thể tự lưu database, giúp công đoạn restore nhàn hơn
Có thể tham khảo thêm về cấu hình backup Webinoly -> Rclone -> Cloudflare R2 và Google Drive
FastCgi Cache
Các hình ảnh sau khi dùng FastCgi Cache có hiệu năng khá tương đồng với load trực tiếp từ localhost, vài bài viết có nhiều ảnh và nặng thì tốc độ lên tới 500-700ms, tất nhiên nếu mưu hèn kế bẩn, thích các con số làm màu thì có thể dùng các hình thức như Lazy load
Phần lớn các bài viết khi đã cache load toàn bộ trang khoảng 0.1-0.2s
Thời gian backup full site
Khi sử dụng Webinoly để backup full trang, sau đó zip lại, thời gian tổng 2 lần tạo file backup chỉ ~ 30s, sau đó chuyển sang Cloudflare R2 (location Singapore), tổng thời gian hoàn thành khoảng 4 phút
Con VPS có ~2$ 1 tháng mà GreenCloud dùng ổ cứng nhanh khiếp người (SSD RAID-10), mình thấy tốc độ ghi ~ 500MB/s, còn tốc độ đọc > 1GB/s, SSD đã thế thì không rõ mấy gói NVMe của họ nhanh cỡ nào đây :]]
Vì SSD nhanh quá nên các file cache mình lưu vào ổ cứng là đủ, không cần phải lưu vào RAM luôn
Kết quả là dù cài 1 tấn các addon (Artalk, Umami, Cloudinary, WireGuard Easy) trên thèng bibica.net, RAM dùng cũng chỉ loanh quanh < 1.5GB
Speedtest
Trước đây khi ở giai đoạn bắt đầu tập tành cấu hình server, tinh chỉnh này nọ, mình khá là thích các bài speedtest, tuy thế sau khi dùng tới Cloudflare cache, gần như mình không còn speedtest hiệu năng nữa, vì kết nối đi qua Cloudflare, speedtest là vô nghĩa
Đợt này do chuyển toàn bộ về VPS tại Việt Nam, không còn dùng bất cứ hình thức cache bên ngoài nào, nên chạy thử bài test loader.io xem thế nào
Đây là 1 bài test cực nặng, vì tất cả request đều đi thẳng tới VPS, không hề cache bất cứ thứ gì qua Cloudflare, chưa kể mình còn dùng Artalk, 1 hệ thống comment ngoài, và nó hoàn toàn không được cache
FlyingPress trước đây mình thử trên các gói VPS khác, cũng chưa khi nào pass nổi 1000 kết nối mỗi giây ở trang chủ, chứ đừng nói là ở bài viết, quá xá hình ảnh và load cả comment
Ấy thế mà trên gói BudgetKVMVN-2 của GreenCloud sử dụng 2 core Xeon(R) Gold 6148, cài đặt Webinoly + FlyingPress + Artalk có thể pass nổi 1000 kết nối mỗi giây mà không có bất cứ lỗi nào
Thực sự rất sock với GreenCloud, trước đây mình dùng các VPS khác, phải cache hết các file tĩnh qua Cloudflare, trên 1 trang WordPresss không có data, mới ngáp ngáp qua được bài test này, ấy thế mà trên BudgetKVMVN-2 pass ngọt luôn :]]
Vấn đề gặp phải
- Sau khoảng gần 1 tháng chuyển hoàn toàn các dịch vụ trực tiếp về Việt Nam, đôi lúc mình cảm giác phân giải DNS của GreenCloud trên máy của mình khá ngáo
Kiểu mình thử trên 5-6 trình duyệt, mỗi trình duyệt có thể dùng 1 dịch vụ DNS khác nhau, thường thì không gặp vấn đề gì, nhưng đôi lúc ở 1 vài dịch vụ DNS, phân giải ra IP rất chậm, nếu bạn clear cache hoàn toàn trên trình duyệt, lần đầu tiên khi bạn gõ domain bibica.net sẽ có xác xuất load cực chậm, thậm chí tới 3s
Trước đây khi dùng proxy qua Cloudflare (đám mây màu cam) dù phải đi qua Sing, US …. nhưng không bao giờ gặp vấn đề liên quan tới DNS như này
Do nó chỉ thi thoảng mới gặp, và cũng chỉ xảy ra ở lần đầu tiên bạn vào, nên tạm mình cũng chưa có hướng xử lý =)) đành tạm coi như do máy mình gặp vấn đề 😛
- Vấn đề cache ảnh bị MISS
Sau khi đổi hoàn toàn sang dịch vụ ảnh từ Cloudinary thì không còn gặp tình huống ảnh đã cache mà bị MISS nữa, dùng Jetpack Photon thỉnh thoảng bị, mình đoán cái này do cấu hình FastCgi Cache, mà Cloudinary chạy ổn rồi thì cũng không tìm hiểu thêm, phần vì mình cũng thích các link ảnh từ Cloudinary hơn
- Đơ lag khi preload cache
FlyingPress khi làm mới toàn bộ cache, nó sẽ đơ lag 1 hồi, dù CPU dùng chỉ 20-30%, tình huống này khi dùng các VPS khác mình không gặp, cũng không quá quan trọng, vì sau khi trang đi vào ổn định, xác xuất bạn phải xóa toàn bộ cache cũng khá ít, khi cập nhập bài viết, thêm bài mới, mọi thứ ổn định
- Downtime
Khoảng 1 tháng nay mình khá thường xuyên tùy chỉnh, cấu hình, cài đặt, reboot VPS 😀 thường thì mình cũng làm lúc ít có ai truy cập, nhưng nếu tình cờ bạn vào mà thấy SẬP thì thành thật xin lỗi
Nhất là tính huống gần nhất, khi mình cập nhập Artalk lên phiên bản mới nhất, phần comment phía user gặp lỗi liên qua tới cookie, cache 😛
Kết luận
Tới thời điểm này, mình vẫn không thích dùng location Việt Nam, mình vẫn quan điểm khi Việt Nam đứt cáp, nặng tới nổi đi sang Singapore cũng lê lết, có nghĩa là toàn bộ hệ thống mạng của Việt Nam có vấn đề, lỗi này do cơ sở hạ tầng của chúng ta, hay nói đơn giản hơn, là vấn đề của khách truy cập vào site 😀
Cơ mừ nhân dịp có ít bạn donate cho thèng bibica.net, thêm vào GreenCloud bán gói BudgetKVMVN-2 giá như cho, nên cũng ráng đú 😀 sau này Việt Nam có đứt cáp nặng cũng đỡ lê lết hơn 1 tẹo 😛
Nếu vì lý do “thần thánh” nào đó mà bạn muốn ủng hộ trang bibica.net, nói kiểu giờ là ít thì 5 quả trứng, nhiều thì một tên lửa 😀 có thể tham khảo tại đây hé 😛
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ị!