1627078910 huong dan cai dat ssl tren webinoly

Webinoly – LEMP stack đơn giản mạnh mẽ

Tôi biết đến Webinoly một cách tình cờ khi tham khảo khu vực hỗ trợ của một nền tảng khác. Một thành viên đã giới thiệu Webinoly như một giải pháp thay thế nếu không muốn chờ đợi phiên bản mới của nền tảng kia.

Webinoly chính thức ra mắt vào ngày 28/08/2017. Tại thời điểm bài viết này được khởi thảo (04/12/2017), phiên bản v1.1.0 vừa được phát hành cách đó vài ngày.

Đến nay, sau 6 năm phát triển, Webinoly đã trở thành lựa chọn LEMP stack tự động mà tôi đang sử dụng. Do đó, tôi sẽ cố gắng cập nhật bài viết này một cách thường xuyên.

Giới thiệu về Webinoly

Webinoly v1.18.4 hoạt động mặc định trên PHP v8.3.9 + MariaDB v11.4.2 + Nginx v1.26.1 + HTTP/3. Các phiên bản này luôn được cập nhật từ các nguồn chính thức, nhằm đảm bảo tính ổn định tối đa cho máy chủ.

Webinoly có khả năng tương thích cao, hoạt động tốt trên cả x86_64, arm64 và thậm chí cả các môi trường chỉ có IPv6.

Trong năm 2024, Webinoly đã hỗ trợ Ubuntu 24.04 LTS. Sau khi dùng thử, tôi nhận thấy phiên bản mặc định của Ubuntu 24.04 được cài đặt gọn nhẹ, sử dụng ít RAM. Nếu bạn thích khám phá, có thể dùng thử phiên bản này. Tuy nhiên, đối với các trang web yêu cầu độ ổn định cao, Ubuntu 22.02 vẫn là lựa chọn an toàn hơn.

Ports Configuration

Webinoly yêu cầu các cổng sau để hoạt động:

  • 22/TCP (Chiều vào/Chiều ra)
  • 25/TCP (Chiều ra)
  • 80/TCP (Chiều vào/Chiều ra)
  • 443/TCP (Chiều vào/Chiều ra)
  • 587/TCP (Chiều ra) Tùy chọn cho SMTP
  • 11371/TCP (Chiều ra) GPG Keys
  • 22222/TCP (Chiều vào) Khu vực quản trị

Thông thường, hầu hết các nhà cung cấp VPS đều mở sẵn tất cả các cổng. Tuy nhiên, một số dịch vụ như Oracle, Google, Amazon… có thể khóa các cổng theo mặc định. Trong trường hợp này, bạn cần mở các cổng theo yêu cầu trên để Webinoly hoạt động bình thường.

Cài đặt

Quá trình cài đặt Webinoly rất đơn giản, chỉ với một dòng lệnh. Tuy nhiên, sau nhiều năm sử dụng và thử nghiệm trên nhiều loại VPS khác nhau, tôi khuyến nghị bạn nên cài đặt theo các lệnh tuần tự như sau để giảm thiểu tối đa các lỗi có thể xảy ra.

Cập nhập OS

sudo apt update && sudo apt upgrade -y && sudo reboot

Sau khi cập nhật hệ điều hành, hãy khởi động lại VPS để đảm bảo hệ thống hoạt động ổn định.

Cập nhập locale

locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Kể từ khi Webinoly mặc định sử dụng PHP v8, việc cập nhật locale là cần thiết. Nếu không, quá trình cài đặt PHP có thể gặp lỗi trên một số VPS.

Cài đặt Webinoly

wget -qO weby qrok.es/wy && sudo bash weby

Với cài đặt mặc định, Webinoly sẽ tự động cấu hình máy chủ, bao gồm các thông số liên quan đến mạng, ping, BBR, cũng như các cấu hình cho PHP và Nginx.

Sau một thời gian sử dụng và làm quen với Webinoly, bạn có thể tùy chỉnh các cấu hình theo nhu cầu, chẳng hạn như lựa chọn phiên bản PHP, MySQL…

Vô hiệu hóa tường lửa

sudo apt remove iptables-persistent -y
sudo ufw disable
sudo iptables -F

Thực tế, tôi hiếm khi quan tâm đến việc tìm hiểu hoặc sử dụng các lệnh liên quan đến tường lửa trên hệ điều hành. Một số nhà cung cấp VPS, chẳng hạn như Oracle, thường kích hoạt tường lửa mặc định ngay trong Ubuntu, điều này có thể gây ra một số bất tiện. Việc tắt nó đi có thể giúp quá trình cài đặt và cấu hình trở nên dễ dàng hơn.

Nếu bạn vẫn muốn sử dụng tường lửa, có những phương pháp khác hiệu quả hơn:

  • Sử dụng tường lửa của Cloudflare.
  • Sử dụng tường lửa do chính nhà cung cấp VPS cung cấp.

Các giải pháp này hoạt động bằng cách chặn lưu lượng truy cập trước khi nó đến VPS, giúp tiết kiệm tài nguyên và tăng cường hiệu quả bảo mật.

Sau khi hoàn tất quá trình cài đặt, bạn có thể sử dụng lệnh sau để kiểm tra tổng quan hệ thống:

sudo webinoly -info
[Operating System]
OS Info: Linux version 6.8.0-38-generic (buildd@lcy02-amd64-049) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun  7 15:25:01 UTC 2024
Description:    Ubuntu 24.04 LTS
Codename:       noble
RAM: 1Gb
SWAP: 1Gb

CPU Model: AMD EPYC 7542 32-Core Processor
pc-i440fx-5.1  CPU @ 2.0GHz
Architecture: AuthenticAMD
QEMU (x86_64)
Cores: 1
Threads per core: 1

Hostname: ubuntu-1cpu-1gb-sg-sin1
File descriptors (OS): 9223372036854775807
File descriptors (root): 1048576
File descriptors (nginx/per process): 65535

[Disk Usage]
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda2      ext4   20G  5.4G   14G  29% /

[NGINX]
Branch: stable
Version: 1.26.1
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: 195m
open_file_cache_valid: 30s
open_file_cache max: 1000
open_file_cache inactive: 10s

[PHP]
Info: PHP 8.3.9 (cli) (built: Jul  5 2024 12:04:09) (NTS)
memory_limit:  256M
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]
Info: mariadb from 11.4.2-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using  EditLine wrapper
phpMyAdmin: 5.2.1

[Webinoly]
Default site: blackhole
Tools site: default
Tools port: 22222
Timezone: Undefined
SMTP: None

[Internal]
mail:bibica@gmail.com
global-access-log-off:true
default-response:blackhole
php-ver:8.3
mysql-ver:11.4
app-version:1.18.4
status-api:wys
swap-owner:webinoly
linux-optim:true
pre-packs:true
nginx:true
cron-ads:1720621659
server-version:1.11
nginx-optim:true
tools-port:22222
nginx-tool-ssl:true
nginx-tool-bkp:true
php:true
php-optim:true
php-tool-postfix:true
php-tool-redis:true
php-tool-memcached:true
mysql-client:true
mysql-root:QldCOUFSaEV3NGhGRmFTbwo=
mysql-admin:ekYydjdEMVVvOU9NWmVGUQo=
mysql:true
mysql-optim:true
mysql-tool-pma:true
default-site:blackhole

Các thông số đã được tác giả điều chỉnh một cách tỉ mỉ, dựa trên cấu hình phần cứng của VPS, để đạt được sự cân bằng tối ưu giữa hiệu năng, bảo mật và tốc độ. Đây là một cấu hình hoàn hảo cho một hệ thống cơ bản. Điểm duy nhất mà Webinoly chưa cấu hình là các thông số liên quan đến MySQL MariaDB. Để tối ưu hóa các giá trị này, bạn có thể sử dụng một công cụ chuyên dụng.

Cài đặt WordPress trên Webinoly

Để cài đặt WordPress, bạn sử dụng lệnh sau, thay “example.com” bằng tên miền của bạn:

site example.com -wp

Webinoly cũng tạo sẵn symbolic link, giúp bạn dễ dàng truy cập thư mục chính từ SSH bằng lệnh root.

Webinoly – LEMP stack đơn giản mạnh mẽ

Việc này giúp truy cập vào thư mục trên các tên miền hoặc cấu hình Nginx một cách nhanh chóng, thay vì phải ghi nhớ vị trí các thư mục con.

Ví dụ:

Config /etc/nginx/sites-available
Root /var/www/example.com/htdocs

So với các công cụ khác, Webinoly giúp bạn không cần phải nhớ đường dẫn đến thư mục cấu hình hay thư mục gốc của tên miền. Đây là một điểm cộng nhỏ nhưng hữu ích, mà ít công cụ tự động hóa nào có.

Tắt HTTP Authentication

Để tắt xác thực HTTP, sử dụng lệnh sau:

sudo httpauth example.com -wp-admin=off

Webinoly mặc định sử dụng HTTP Authentication để tăng cường bảo mật cho các trang như wp-admin. Tuy nhiên, nếu bạn không cần tính năng này, có thể tắt nó đi.

Trong trường hợp bạn muốn tăng cường bảo mật cho WordPress, bạn có thể tham khảo các phương pháp bảo mật khác.

Cài đặt SSL

Để cài đặt SSL, bạn có thể sử dụng lệnh sau:

sudo site example.com -ssl=on

Nếu bạn cần Wildcard SSL, có thể sử dụng cho tất cả các tên miền và subdomain đi kèm, hãy dùng lệnh sau:

sudo site example.com -ssl=on -wildcard

Mặc dù Webinoly có tính năng tự động gia hạn SSL, nhưng đôi khi có thể gây phiền toái nếu bạn thường xuyên tạo và xóa SSL trên các tên miền giống nhau, do Let’s Encrypt có thể báo lỗi.

Để khắc phục điều này, bạn có thể sử dụng TLS certificate signed by Cloudflare. Với phương pháp này, bạn chỉ cần tạo SSL một lần duy nhất từ Cloudflare, sau đó có thể sử dụng khóa .key.pem này cho cả tên miền chính và tất cả subdomain, với thời gian sử dụng lên đến 15 năm.

Sau khi hoàn tất, bạn có thể truy cập vào domain.com để cài đặt WordPress như thông thường.

Webinoly – LEMP stack đơn giản mạnh mẽ

Như vậy, bạn đã hoàn thành việc cài đặt WordPress một cách cơ bản.

Đánh giá hiệu năng

Trong các bài viết trước đây, tôi đã trình bày chi tiết về các thử nghiệm hiệu năng, bao gồm tốc độ và khả năng chịu tải trên Webinoly. Tuy nhiên, sau khoảng thời gian dài sử dụng và tìm hiểu, tôi nhận thấy việc lặp lại những nội dung này là không cần thiết. Trong tất cả các thử nghiệm hiệu năng, Webinoly luôn chứng minh được khả năng duy trì thời gian hoạt động (uptime) vượt trội ngay cả khi hệ thống chịu tải lớn. Tốc độ và khả năng chịu tải của Webinoly thực sự rất ấn tượng.

Để nâng cao tính ổn định, bạn có thể cài đặt thêm các công cụ giám sát dịch vụ PHP, MySQL và Nginx. Các công cụ này sẽ tự động khởi động lại các dịch vụ nếu có sự cố xảy ra.

Về cấu hình MySQL, tôi sử dụng các khuyến nghị từ một công cụ tối ưu hóa dựa trên trí tuệ nhân tạo. Cụ thể, tôi áp dụng các thiết lập sau trên trang web của mình, trang web này có khá nhiều plugin và khoảng 200 bài viết:

[mysqld]
thread_cache_size = 32<br>
table_open_cache = 2048<br>
sort_buffer_size = 8M<br>
innodb = force<br>
innodb_stats_on_metadata = OFF<br>
innodb_buffer_pool_instances = 8<br>
innodb_log_buffer_size = 10M<br>
innodb_flush_log_at_trx_commit = 2<br>
innodb_thread_concurrency = 6<br>
join_buffer_size = 8M<br>
max_allowed_packet = 64M<br>
read_rnd_buffer_size = 16M<br>
read_buffer_size = 2M<br>
bulk_insert_buffer_size = 64M<br>
max_connections = 512<br>
myisam_sort_buffer_size = 128M<br>
explicit_defaults_for_timestamp = 1<br>
open_files_limit = 65535<br>
table_definition_cache = 1024<br>
table_open_cache = 2048<br>
log_bin_trust_function_creators = 1<br>
disable_log_bin<br>
innodb_adaptive_flushing_lwm = 25.000000<br>
innodb_max_dirty_pages_pct = 70.000000<br>
innodb_autoextend_increment = 48<br>
transaction_prealloc_size = 8192<br>
key_buffer_size = 8M<br>
query_cache_type = 0<br>
query_cache_size = 0<br>
query_cache_limit = 1048576<br>
query_cache_min_res_unit = 4096<br>
innodb_buffer_pool_size = 128M<br>
innodb_buffer_pool_chunk_size = 2M<br>
thread_stack = 524288<br>
max_heap_table_size = 830472192<br>
tmp_table_size = 830472192<br>
innodb_log_file_size = 25165824


Việc tinh chỉnh này mang lại sự cải thiện đáng kể về **tốc độ**. Nếu bạn đang sử dụng Webinoly, bạn sẽ cảm nhận rõ rệt sự khác biệt này.

Sao lưu và khôi phục máy chủ

Đây là một tính năng được nhà phát triển giới thiệu là “Việc di chuyển hoặc chuyển đổi một trang web hoặc toàn bộ máy chủ chưa bao giờ dễ dàng đến thế!

Trước đây, tôi không mấy để ý đến tính năng này, vì các cấu hình Nginx, PHP, MySQL mà tôi sử dụng chỉ là một tệp cấu hình đơn giản. Thông thường, chỉ cần tạo một đoạn mã bash nhỏ, việc cài đặt lại một máy chủ mới hoàn toàn cũng chỉ mất vài phút.

Đối với các trang WordPress, SSL tôi sử dụng từ một nhà cung cấp dịch vụ, dữ liệu thì tôi dùng một plugin trả phí, nên việc sao lưukhôi phục sang máy chủ mới rất đơn giản.

Vấn đề nảy sinh khi gần đây, tôi chuyển sang sử dụng gói dịch vụ của một nhà cung cấp, SSL phải dùng Let’s Encrypt, kèm theo đó là cấu hình phức tạp các subdomain phụ cho các dịch vụ.

Đặc biệt là công đoạn cấu hình Reverse Proxy cho một dịch vụ sau đó dùng FastCgi Cache để cache lại các ảnh, cần chỉnh sửa khá nhiều chi tiết nhỏ trong các tệp cấu hình Nginx.

Nếu sử dụng cách trước đây là tạo bash script để tự động cài đặt, thì tôi phải sao chép lại cấu hình của khoảng 15-20 tệp nhỏ, khá là phiền phức, nhất là công đoạn sao lưu lại các SSL từ Let’s Encrypt.

Do đó, tôi xem lại tính năng sao lưu và khôi phục máy chủ của công cụ đang dùng.

Nhìn chung thì khá ổn, các cấu hình SSL, Nginx, MySQL, dữ liệu kèm database của các trang đều được lưu lại, thao tác cũng rất đơn giản:

  • Trên VPS gốc, tạo một bản sao lưu bằng lệnh:
sudo webinoly -backup=local -export

Tệp sao lưu sẽ được lưu trữ xuống thư mục root.

  • Trên VPS mới, cài đặt bằng công cụ với tùy chọn -clean:
sudo wget -qO weby qrok.es/wy && sudo bash weby -clean
  • Tải tệp webinoly_full_backup lên VPS mới, sau đó chạy lệnh import tại máy chủ mới:
sudo webinoly -backup=local -import=full -file=/root/webinoly_full_backup_2023-12-01-08_18_55

Thời gian cài đặt và khôi phục lại toàn bộ mọi thứ khá nhanh.

Webinoly Stack Server was built using your imported configuration!
Database successfully imported!
MySQL/MariaDB has been successfully Optimized by Webinoly!
MySQL/MariaDB settings has been updated successfully!
Webinoly Full Server Backup imported successfully!

Lúc này chỉ việc thay đổi lại DNS sang máy chủ mới là xong, mọi thứ diễn ra rất suôn sẻ.

Trong trường hợp sử dụng lâu dài, đôi khi bạn sẽ gặp tình huống bản sao lưu cũ và bản script mới không cùng phiên bản, có thể gặp một số thông báo lỗi nhất định, lúc này có thể chạy lại lệnh reset để chỉnh sửa lại.

## **Sao lưu** và **khôi phục** máy chủ

```bash
sudo webinoly -server-reset

Trước đây, sau khi thiết lập Webinoly, tôi thường sử dụng một công cụ chuyên dụng để tái cài đặt các trang WordPress. Cơ chế sao lưu của Webinoly hoạt động một cách tự động và toàn diện, giúp tôi không cần phải nhập lại bất kỳ thông tin nào.

Vì tôi có một vài chỉnh sửa nhỏ trong cấu hình PHP và MySQL, cũng như sử dụng thêm một số tiện ích mở rộng thông qua Docker như Artalk, Umami, WireGuard Easy, nên tôi cần cài đặt thêm một vài dòng lệnh. Tuy nhiên, Webinoly đã xử lý hầu hết các bước phức tạp nhất như cấu hình Nginx, domain, SSL, dữ liệu và database, giúp cho việc chuyển đổi máy chủ trở nên thực sự dễ dàng.

Webinoly là một script hiếm hoi có tính năng sao lưukhôi phục toàn bộ cấu hình của máy chủ. Các script khác thường chỉ có tính năng sao lưu dữ liệu và database của một trang web cụ thể.

Tính năng sao lưu, khôi phục máy chủ và reverse proxy là hai ưu điểm lớn của Webinoly.

Các lệnh khác

Tác giả hỗ trợ rất nhiều tùy chỉnh. Hiện tại, tôi sử dụng cách này để tự cài đặt các cấu hình thường dùng, như chủ động cài đặt PHP và MySQL, cùng một số cấu hình nhỏ khác.

Đây là thứ mà trước đây tôi dùng để chạy trên các VPS cấu hình yếu.

Có thể sử dụng nó để thay đổi domain bên trong các bài viết, tìm kiếm và thay thế một đoạn text cụ thể.

Về FastCGI Cache mặc định cho WordPress, tôi thường ít sử dụng mà thay vào đó dùng các giải pháp khác.

Việc bật tắt rất đơn giản bằng tùy chọn -cache=on hoặc -cache=off.

# Kích hoạt Cache tùy chỉnh
sudo site example.com -cache=on

Để vô hiệu hóa bộ nhớ đệm tùy chỉnh, bạn có thể sử dụng lệnh sau:


sudo site example.com -cache=off

Trong trường hợp bạn đã vô tình xóa hoặc chưa cài đặt MemcachedRedis, bạn có thể cài đặt lại chúng bằng các lệnh sau:

sudo stack -redis
sudo stack -memcached

Tính năng Reverse Proxy site là một công cụ hữu ích, đặc biệt khi kết hợp với FastCGI Cache, giúp tăng tốc độ tải các tệp hình ảnh.

Để cập nhật phiên bản Webinoly mới nhất, hãy sử dụng lệnh:

sudo webinoly -update

Để kích hoạt SFTP, hãy thực hiện lệnh sau:

sudo webinoly -login-www-data=on

Để điều chỉnh múi giờ về Việt Nam, sử dụng lệnh:

timedatectl set-timezone Asia/Ho_Chi_Minh

Nếu bạn muốn hạ cấp phiên bản PHP xuống 7.4 (có thể chậm hơn so với v8, nhưng tương thích tốt hơn với nhiều addon và plugin), hãy dùng lệnh:

sudo stack -php-ver=7.4

Để xóa một trang web khỏi hệ thống, thay “example.com” bằng tên miền bạn muốn xóa và thực hiện lệnh:

sudo site example.com -delete

Để xem thông tin chi tiết về một trang web, sử dụng lệnh:

sudo site example.com -info

Reverse Proxy site là một tính năng thú vị và hữu ích, cho phép bạn sử dụng một VPS Webinoly làm proxy cho một VPS khác. Ví dụ, bạn có một VPS Webinoly tại Singapore cho tốc độ truy cập nhanh ở Việt Nam và một VPS khác ở US có tốc độ truy cập chậm hơn. Bạn có thể sử dụng VPS Webinoly làm proxy để tăng tốc độ truy cập cho VPS ở US.

Giả sử bạn có một tên miền trên VPS ở US là bibica-us-server.com với địa chỉ IP là 209.94.63.217, và VPS Webinoly có địa chỉ IP là 95.111.195.228. Trên VPS Webinoly, bạn thực hiện lệnh:

sudo site bibica-us-server.com -proxy=[95.111.195.228:80]

Sau đó, trong trang quản trị tên miền bibica-us-server.com, bạn thay đổi bản ghi DNS từ 209.94.63.217 thành 95.111.195.228.

Lúc này, khi truy cập bibica-us-server.com, lưu lượng sẽ đi qua VPS Webinoly (95.111.195.228) trước khi đến VPS ở US (209.94.63.217).

Ví dụ, nếu ping đến 95.111.195.228 là 40ms và ping đến 209.94.63.217 là 200ms, thì sau khi cấu hình Reverse Proxy, ping đến bibica-us-server.com sẽ giảm từ 200ms xuống còn khoảng 60ms.

Để đảm bảo các bình luận và bài viết trên bibica-us-server.com hiển thị đúng địa chỉ IP của người dùng, bạn cần thực hiện một số điều chỉnh nhỏ. Mở tệp cấu hình tên miền trên VPS bibica-us-server.com (ví dụ: /etc/nginx/sites-available/bibica-us-server.com) và thêm các dòng sau vào bên trong server {…}:

real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;

Cuối cùng, khởi động lại Nginx:

service nginx reload

Vấn đề phát sinh?

Việc gặp phải lỗi trong quá trình sử dụng Webinoly là điều hoàn toàn có thể xảy ra, đặc biệt khi bạn khai thác triệt để các tính năng đa dạng mà nó cung cấp. Sự phong phú trong các tùy chọn, cùng với phương thức triển khai thông qua các tệp bash, đôi khi gây khó khăn trong việc quản lý và kiểm soát lỗi.

Ví dụ, khi sử dụng Reverse Proxy với các cấu hình bộ nhớ đệm phức tạp, việc xóa một tên miền có thể không loại bỏ hoàn toàn các cấu hình liên quan, dẫn đến tình trạng sót lại một vài thành phần.

Tuy nhiên, với kinh nghiệm và hiểu biết về hệ thống, người dùng hoàn toàn có thể chủ động phát hiện và khắc phục các lỗi này một cách thủ công.

Đôi khi, các lỗi có thể phát sinh từ các cấu hình tùy chỉnh trong tệp webinoly.conf. Chẳng hạn, việc thiết lập wp-admin-auth:false có thể không được áp dụng ngay sau khi cài đặt, đòi hỏi người dùng phải vô hiệu hóa thủ công.

Nhìn chung, so với các script cấu hình khác đã từng sử dụng, tỷ lệ lỗi của Webinoly được đánh giá là tương đối thấp.

Tóm lược

Webinoly được đánh giá cao trong số các script tự động cấu hình, nhờ sự cân bằng giữa các yếu tố như:

  • Bảo mật
  • Tốc độ
  • Khả năng chịu tải
  • Tính dễ sử dụng

Sau nhiều năm thử nghiệm với nhiều công cụ, script và thậm chí tự cấu hình riêng, Webinoly vẫn là lựa chọn ưu tiên, hoạt động ổn định và hiệu quả. Chức năng sao lưu và khôi phục máy chủ cũng rất hữu ích, cho phép chuyển đổi toàn bộ cấu hình sang một VPS mới một cách nhanh chóng và dễ dàng.

Để tối ưu hóa trải nghiệm sử dụng Webinoly, bạn nên cân nhắc sử dụng thêm:

  1. SSL từ Cloudflare để tăng cường bảo mật.
  2. Releem để tối ưu hóa MySQL ở cấp độ cao.
  3. Công cụ giám sát dịch vụ PHP, MySQL, Nginx để tự động khởi động lại dịch vụ khi gặp sự cố.

Với những công cụ hỗ trợ này, bạn sẽ ít khi phải can thiệp vào quản trị máy chủ, mọi thứ sẽ vận hành một cách trơn tru và ổn định.

Nguồn bibica.net

4.7/5 - (9 bình chọn)