Webinoly và Oracle Always Free

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

2023-06-14_16-32-57

Đặ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
Bạn hoàn toàn có thể tạo webserver và remote server bằng CyberPanel, vì bản thân CyberPanel cũng đã có sẵn tính năng Remote Access trên database rồi, việc cài đặt kể ra còn nhàn hơn, vì không phải nhớ lệnh nào cả

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

2023-06-14_16-29-29

Mọi thứ vận hành khá bình thường 😀

2023-06-14_16-42-18

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% :]]

2023-06-14_16-43-42

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

2023-06-14_17-57-31

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

2023-06-14_15-57-29

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

2023-06-14_21-05-26

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

2023-06-14_18-02-16

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ả

Hiện tại mình đang dùng Oracle Always Free cấu hình như trong bài cho thèng bibica.net, nếu Oracle không downtime, xóa tài khoản hay gì thì mình sẽ cố duy trì, sử dụng gói FREE này 😀

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback.
Notes: However, those deemed to be spam or solely promotional will be deleted.

You can create a Gravatar account, add avatar, then use that email to comment here, your account will have a more beautiful Avatar, easier to recognize with other members.

Please use real emails, you can receive notifications when comments are replied