Oracle cho chúng ta miễn phí 2 VPS VM.Standard.E2.1.Micro 1GB RAM, có điều CPU AMD này yếu cực kì, chạy chậm lắm
Dù tài khoản UpCloud của mình vẫn đủ dùng thêm vài năm nữa, nhưng vẫn mong muốn có một nơi … miễn phí 😀 đợt này kiếm được tài khoản Oracle Japan nên thử lại xem thế nào
Dùng 2 VPS miễn phí, 1 con làm webserver, 1 con làm database chạy remote
Tách ra kiểu này, thường nó phù hợp với các trang to, tương tác nhiều, chủ yếu do Oracle cho miễn phí 2 con nên làm màu là chính 😀
Còn thuần túy tốc độ, tách ra làm 2 thế này, nó sẽ không nhanh bằng so với dùng database và webserver chung 1 chỗ
Ngồi xem thì thấy Webinoly có hỗ trợ sẵn cho vấn đề này, đỡ phải nhớ lệnh gì, nên quyết định thử nghiệm luôn xem thế nào 😛
- Vào Oracle tạo 2 VPS ở gói Always Free, sử dụng Ubuntu 22.04
Đặt tên kiểu webserver và database, để sau còn biết con nào là con nào, mở port, tạo tài khoản root ….
Cài đặt remote server
- Mở các port trên OS Ubuntu (dành riêng cho VPS Oracle)
sudo apt remove iptables-persistent -y && sudo ufw disable && sudo iptables -F
- Cài đặt Webinoly clean
wget -qO weby qrok.es/wy && sudo bash weby -clean
- Cài đặt MySQL (MariaDB)
sudo stack -mysql
- Bật remote access
sudo webinoly -mysql-public-access=on -create-master-user=[masteruser,abcdefgh]
Trong đó masteruser là user tài khoản root, abcdefgh là password tài khoản root
Sửa lại theo ý bạn, cho dễ nhớ cũng được
Việc cài đặt remote server quá là nhàn với sự giúp đỡ của Webinoly 😀
Cài đặt webserver
- Mở các port trên OS Ubuntu (dành riêng cho VPS Oracle)
sudo apt remove iptables-persistent -y && sudo ufw disable && sudo iptables -F
- Cài đặt Nginx and PHP
wget -qO weby qrok.es/wy && sudo bash weby -php
- Hạ cấp PHP xuống 7.4
sudo stack -php-ver=7.4
- Remove redis và memcached cho nhẹ vì không dùng tới
sudo apt-get remove memcached -y sudo apt-get remove redis-server -y
- Chỉnh về múi giờ Việt Nam
timedatectl set-timezone Asia/Ho_Chi_Minh
Thông số sau khi cài đặt xong của 2 VPS
Hostname: webinoly-database [NGINX] NGINX is not installed! [PHP] PHP is not installed! [MYSQL] Info: mysql Ver 15.1 Distrib 10.6.14-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper phpMyAdmin: Not installed! [Webinoly] Default site: default Tools site: default Tools port: Timezone: Undefined SMTP: None [Internal] mysql-ver:10.6 mysql-public-access:true app-version:1.17.3 status-api:wys cron-ads:1686729572 swap-owner:webinoly linux-optim:true pre-packs:true mysql-client:true mysql-root:xxxx= mysql-admin:xxxx= mysql:true mysql-optim:true root@webinoly-database:~#
Hostname: webinoly-host-main [NGINX] Branch: Version: 1.24.0 worker_processes: auto worker_connections: 20000 worker_rlimit_nofile: 65535 client_max_body_size: 100m [NGINX Cache Settings] FastCGI 200: 30d FastCGI 3xx/4xx: 1m FastCGI inactive: 7d FastCGI max-size: 222m open_file_cache_valid: 30s open_file_cache max: 1000 open_file_cache inactive: 10s [PHP] Info: PHP 7.4.33 (cli) (built: Jun 8 2023 15:23:32) ( NTS ) memory_limit: 192M post_max_size: 101M upload_max_filesize: 100M max_file_uploads: 20 max_execution_time: 60 Process Manager: dynamic pm.max_children: 6 pm.start_servers: 2 pm.min_spare_servers: 2 pm.max_spare_servers: 4 [MYSQL] MySQL/MariaDB is not installed!
Cài đặt Wordpress
sudo site bibica.net -wp=custom
Điền IP:3306, use và pass root remote MySQL server tạo ở trên vào (bước hỏi tài khoản root database, Webinoly chỉ hỏi lần đầu, lần sau sẽ không hỏi lại)
Webinoly sẽ tự tạo database mới với user + pass cho WordPress như bình thường
- Tắt HTTP Authentication
sudo httpauth bibica.net -wp-admin=off
- Cấu hình ssl, backup, restore các thứ tương tự bài cũ 😀
Mọi thứ vận hành khá bình thường 😀
Trên Webserver chỉ chạy Nginx and PHP mà ăn RAM cũng khá là nhiều 😀
Mỗi lần viết bài, ấn save draft CPU hú toàn 50-70% :]]
Remote MySQL server chỉ cài MariaDB nên các tasks và RAM dùng khá ít, CPU gần như không load
Trong admin, Query Monitor báo slow queries khá nhiều 😛 gần như làm cái vẹo gì cũng báo chậm cả 😛
Mysql optimization
Không có nhiều ý tưởng lắm cho tối ưu mysql remote 😛 phần vì thèng bibica.net đang vận hành như là 1 trang tĩnh, các truy xuất tới database đều là 1 người ở 1 thời điểm
Thêm nội dung bên dưới vào /etc/mysql/my.cnf
# The MariaDB configuration file [mysqld] innodb_buffer_pool_size = 550M innodb_log_file_size = 100M innodb_buffer_pool_instances = 8 innodb_io_capacity = 5000 max_binlog_size = 100M expire_logs_days = 3 query_cache_size = 32k max_connections = 50
Khởi động lại mysql để thay đổi có hiệu lực
sudo service mysql restart
Cài đặt firewall cho VPS
Thường thì cá nhân mình chẳng bao giờ quan tâm firewall bên trong VPS, mình thích làm ở tầng ngoài, trước khi tới VPS, cảm giác nó hiệu quả hơn 😛
Remote server chỉ nhận duy nhất kết nối từ webserver là đủ, các cổng khác đóng hết lại cho nhẹ server database
Bên trong Ingress Rules, tạo 1 rule mới cho phép webserver kết nối tới remote server qua cổng 3306
- Điền public IP của webserver vào, thêm /32 ở cuối là được
Cũng có thể add IP của chính bạn vào, để thi thoảng có thể vào database chỉnh sửa trực tiếp
Trên Webserver thì mở port 80 và 443, cho phép mọi IP có thể kết nối tới (0.0.0.0/0)
Kiểm tra trên các plugin đang dùng
Do hiện tại thèng bibica.net đã chuyển hết các file tĩnh về Cloudflare R2, nên tổng dung lượng cả trang chỉ ~ 260Mb, nhờ thế khi chạy Duplicator Pro, thời gian khoảng ~ 2 phút để backup xong, 1 con số đủ ổn
Trên Simply Static, khi tạo các trang tĩnh thì khá toang, lết không nổi, may sao ở bản mới nhất, họ có cập nhập thêm WP-CLI, chạy thẳng qua WP-CLI cũng tạm, tốc độ chậm, nhưng ít ra vẫn có chạy 😛
Truy cập trực tiếp trên bibica.net
Khi xem các bài đã cache đa phần 1-2s, bài viết chưa được cache tổng thời gian load xong <5s, có điều thường các request đầu tiên khi chuyển trang nó hiện ra ngay, nên khách truy cập cũng ít thấy sự khó chịu
Thử comment thì mất khoảng ~ 5-8s gì đó mới xong, khá cao, nhưng cũng là con số có thể chấp nhận được
Vấn đề tìm kiếm thì thông qua Algolia sử lý, nên cơ bản cũng không vấn đề gì
Thao tác khi viết bài, cập nhập bài cũ, mọi thứ khá bình thường
Sau khoảng 10 ngày dùng thử cấu hình như trên thì khá hài lòng, tạm chưa thấy lỗi gì cả
Kết luận
So sánh chủ quan, thuần túy tốc độ Oracle Japan Always Free chậm hơn UpCloud Singapore ~ 0.5s
Hiệu năng CPU và ổ cứng của Oracle Always Free vẫn cực tệ, gần như không thể dùng bình thường ở các trang có tương tác nhiều, cỡ 3-5 người mà comment 1 lúc thì CPU 100% load chắc luôn :]] tất nhiên nếu thế thì giải pháp cũng đơn giản, dùng 1 dịch vụ comment ngoài, kiểu Disqus là thoải mái 😛
Về vấn đề downtime của Oracle thì sau khi dùng khoảng 6 tháng đủ các cụm của họ, dù phần cứng yếu vật vã, nhưng trong thời gian mình dùng, lại chưa thấy họ bị sập lần nào cả
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ị!