Trong quá trình sử dụng phát triển website đến một ngưỡng nào đó thì mô hình tất cả trong một all in one một máy chủ chạy luôn cả webserver và database đã đến một mức giới hạn vật lý tài nguyên nào đó, thì đó là lúc bạn cần phải tách riêng biệt máy chủ database và webserver riêng ra.
Mục lục
Tại sao nên sử dụng remote database
khi mô hình tất cả trong một một máy chủ làm tất cả khi đã đến mức nào đó bị giới hạn tài nguyên máy chủ thì đó là lúc bạn phải tách database riêng và webserver riêng.
remote database có tăng tốc so với mô hình tất cả trong một không?
thực tế rằng: khi sử dụng remote database 2 máy chủ riêng biệt thì tốc độ sẽ bị chậm hơn là so với mô hình tất cả trong 1. vật lý cơ bản giao thức unix stocket luôn nhanh hơn giao thức TCP 17% và unix socket an toàn về bảo mật hơn.
về cơ bản nếu website của chưa đến ngưỡng giới hạn vật lý máy chủ max rồi thì bạn không cần phải triển khai remote database làm gì cho chậm website hơn và thêm rủi ro về bảo mật hơn. Hay máy chủ database của bạn bị sập thì website của bạn bị sập và ngược lại nếu máy chủ webserver của bạn sập thì dù máy chủ database có hoạt động thì website của bạn cũng sập.
Còn nhu cầu remote để lấy dữ liệu bằng một số phần mềm như mysql workbench, Navicat … lấy dữ liệu gì hay đồng bộ dữ liệu điều khiển tương tác từ xa thì cách triển khai sẽ có khác một chút vì lý do bảo mật, nhu cầu này wptangtoc ols cũng hỗ trợ sẵn nếu bạn có nhu cầu này.
Bài viết này mình sẽ tập trung vào nhu cầu làm máy chủ database và webserver riêng biệt.
Tài nguyên để hướng dẫn
Liên kết với nhau bằng mạng lan không nên sử dụng public ip vì mạng lan cho tốc độ tốt hơn và ổn định hơn nhiều so với sử dụng public ip và rủi ro bảo mật khi sử dụng qua mạng lan thì được an toàn đảm bảo hơn, cách triển khai qua mạng lan hay public ip thì cũng như nhau cả thôi. Sử dụng qua mạng lan đỡ phải tốn thêm công sức phải cài SSL cho nó nữa dùng SSL cũng gây làm chậm kết nối. nhưng cơ bản thì dùng mạng lan tốc độ ổn định hơn.
Dùng qua mạng lan thì đồng nghĩa với việc bạn phải thuê 2 con vps ở gần nhau, nếu bạn chơi trội kiểu giả sử máy chủ ở database ở bên mỹ và webserver thì đặt ở Việt Nam kết nối qua public ip thì chịu rồi khoảng cách kết nối quá xa hiệu suất rất tệ và rất thiếu sự ổn định.
Các hãng vps lớn đều có tính năng kết nối với nhau qua mạng LAN private IP ví dụ như Google Cloud, Vutrl, linode, DigitalOcean, microsoft azure… nếu có điều thì hãy dùng qua mạng LAN giúp hiệu suất tốt hơn và ổn định hơn một phần nhỏ sử dụng thông quan mạng lan băng thông không giới hạn sẽ không bị tính băng thông.
- 1 máy chủ làm webserver IP thị phạm ví dụ: 192.168.0.1 – hệ điều hành linux centos 7 được rebuild mới trắng hoàn toàn
- 1 máy chủ database IP thị phạm ví dụ: 192.168.0.2 – hệ điều hành linux centos 7 được rebuild mới trắng hoàn toàn
Thiết lập máy chủ database – Cài đặt MariaDB Server
Bạn kết nối tài khoản root ssh vào máy chủ database ví dụ ở đây 192.168.0.2
bạn cứ paste các lệnh này vào terminal
echo '[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1' > /etc/yum.repos.d/MariaDB.repo
yum install mariadb-server -y
systemctl start mariadb.service
systemctl enable mariadb.service
Như vậy là bạn đã cài xong MariaDB 10.5 tuy nhiên mình cần phải thiết lập mật khẩu để nâng cao bảo mật máy chủ database:
mysql_secure_installation
Phát đầu tiên nó hỏi điền lại mật khẩu cũ, bạn cứ enter không cần nhập cái gì.
Xong rồi bạn hãy điền mật khẩu của bạn vào. ( khuyến cáo hãy đặt càng dài càng tốt trên 26 kí tự) – ví dụ mình nhập là giatuanpasswordmysql
Giờ reset lại mariaDB để xác nhận lại.
systemctl restart mariadb.service
Sau đó khi đã cài đặt Maria Database cho máy chủ database
đến bước thiết lập
Thiết lập cho phép kết nối database
Bạn sửa file này: /etc/my.cnf.d/server.cnf
bind-address = 192.168.0.2
192.168.0.2 là địa chỉ ip máy chủ database, bạn hãy thay bằng đúng địa chỉ IP máy chủ database của bạn. Nếu có điều kiện thì dùng qua private ip lan thì cho lại bảo mật và tốc độ tốt hơn nếu không thì dùng public ip.
sudo systemctl restart mysql
Bước tiếp nếu bạn có đang sử dụng tường lửa firewall thì bước bạn có thể thiết lập mở tường lửa port 3306
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
Tạo lập database và user database
Tạo lập database và username database
Ví dụ mình muốn tạo tên database và username database:
- Database name là
giatuanwp
- username là
giatuanuser
- password là
giatuanpass
Bạn truy cập vào quản trị database bằng lệnh:
mysql -u root -p'giatuanpasswordmysql'
CREATE DATABASE giatuanwp;
CREATE USER 'giatuanuser'@'localhost' IDENTIFIED BY 'giatuanpass';
GRANT ALL PRIVILEGES ON giatuanwp.* TO 'giatuanuser'@'localhost';
CREATE USER 'giatuanuser'@'192.168.0.1' IDENTIFIED BY 'giatuanpass';
GRANT ALL PRIVILEGES ON giatuanwp.* TO 'giatuanuser'@'192.168.0.1';
FLUSH PRIVILEGES;
exit
Bạn hãy thay 192.168.0.1 bằng địa chỉ ip máy chủ webserver của bạn và thay tài khoản user name và database, password database của bạn mong muốn.
Giờ bạn có thể chuyển dữ liệu database vào máy chủ database bạn truy cập vào máy chủ cũ của bạn xuất file database rồi uploads vào máy chủ database này rồi khôi phục:
Cách khôi phục thì cũng như bình thường thôi ví dụ bạn kéo file giatuan123.sql vào máy chủ database sử dụng lệnh này để khôi phục:
mysql -u giatuanuser -p'giatuanpass' giatuanwp < giatuan123.sql
như vậy là hoàn tất thiết lập xong máy chủ database rồi đó.
Giờ đến bước tiến hành cấu hình máy chủ webserver.
Thiết lập máy chủ webserver
Bước này để đơn giản nhất bạn có thể sử dụng wptangtoc ols phần mềm tự động thiết lập webserver từ a đến z
curl -sO https://wptangtoc.com/share/wptangtoc-ols && bash wptangtoc-ols
Bạn có thể tham khảo: WPTangToc OLS – Công cụ script thiết lập và quản trị webserver
hoặc bạn có thể tự tạo từ cài đặt webserver đó là tùy nhu cầu của bạn hoặc bạn sử dụng một script webserver nào đó tùy nhu cầu của mình, mình khuyến khích sử dụng wptangtoc ols mình phát triển.
Để có thể kết nối được máy chủ webserver của cần phải yêu cầu có : mariadb-client và php-mysql những thứ này thì wptangtoc ols đều có sẵn rồi. Nếu anh em dùng script khác hoặc tự thiết lập thì lưu ý thêm phần này.
bạn truy cập vào mã nguồn website WordPress của bạn sửa file wp-config.php kết nối database
/** The name of the database for WordPress */
define('DB_NAME', 'giatuanwp');
/** MySQL database username */
define('DB_USER', 'giatuanuser');
/** MySQL database password */
define('DB_PASSWORD', 'giatuanpass');
/** MySQL hostname */
define('DB_HOST', '192.168.0.2');
Như vậy là hoàn tất rồi, chúc các bạn thành công
Như vậy bài viết này mình đã hướng dẫn các bạn, máy chủ database một máy và máy chủ webserver một máy chủ khác. Thực sự việc này mình cũng không khuyến khích cho lắm vì lý do hiệu suất đương nhiên hiệu suất kém hơn khá nhiều so với một máy chủ vừa kiếm luôn cả việc webserver và kiêm luôn làm máy chủ database giúp hiệu suất kết nối là rất nhanh.
Điều này thực sự cần thiết khi bạn max ngưỡng máy chủ vật lý giới hạn không thểm mở rộng dọc không thể mua thêm cpu và mua thêm ram được nữa. vì vậy cần muốn mở rộng ngang.
Thanh Tươi đã bình luận:
Trong WP Tăng Tốc
Nên chọn VPS cùng khu vực không ad hoặc làm sao để nó kết nối nhanh á
Gia Tuấn đã bình luận:
Trong WP Tăng Tốc
càng gần nhau thì càng tốt, nếu cùng hãng kết nối qua mạng lan thì càng ngon