为何迁移数据库?
随着web服务器的工作量愈来愈大,数据也就越来越多。而web服务器的存储容量以及内存有限。将数据库迁移到单独的服务器可以减轻web服务器的压力,提升网站工作的效率。
https://www.processon.com/view/link/5d004e07e4b0cbb88a599f6a
第一个里程碑
- 1.将web服务器的数据压缩导出到root用户家目录下
[root@web02 ~]# mysqldump -uroot -p -A|gzip >/root/all.sql.gz
Enter password:
- 2.检查压缩文件内容
[root@web02 ~]# zcat all.sql.gz
- 3.将压缩文件推送到db01服务器root用户家目录下
[root@web02 ~]# rsync -az all.sql.gz 10.0.0.51:/root/
- 4.在db01服务安装mariadb并启动数据库
[root@db01 ~]# yum install mariadb
[root@db01 ~]# systemctl restart mariadb.service
[root@db01 ~]# systemctl enable mariadb.service
- 5.将压缩包内内容解压并导入数据库
[root@db01 ~]# gzip -d all-gzip.sql.gz
[root@db01 ~]# mysql < all-gzip.sql
- 6.修改web服务器站点 配置文件
[root@web01 /usr/share/nginx/html/blog]# grep -n "DB_HOST" wp-config.php
32:define( 'DB_HOST', '172.16.1.51' );
- 7.检查数据库、user和host字段
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wordpress |
| www |
+--------------------+
MariaDB [(none)]> select user,host from mysql.user;
+-----------+------------+
| user | host |
+-----------+------------+
| root | 127.0.0.1 |
| wordpress | 172.16.1.% |
| root | ::1 |
| root | localhost |
| wordpress | localhost |
| root | web01 |
+-----------+------------+
6 rows in set (0.00 sec)
6 rows in set (0.01 sec)
- 8.进行刷新(用户权限)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
- 9.在web服务器远程连接进行测试
[root@web01 /usr/share/nginx/html/blog]# mysql -uwordpress -p123456 -h 172.16.1.51
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
-
10.登陆网站页面进行测试
第二个里程碑
web服务器(用户上传图片等)共享存储
- 1.先在nfs共享服务器上创建nginx虚拟用户uid、gid都=2222,web服务器也要修改
[root@nfs-01 ~]# useradd -u 2222 -s /sbin/nologin -M nginx
[root@nfs-01 ~]# id nginx
uid=2222(nginx) gid=2222(nginx) groups=2222(nginx)
[root@nfs-01 ~]# cat /etc/passwd |grep nginx
nginx:x:2222:2222::/home/nginx:/sbin/nologin
[root@web01 ~]# usermod -u 2222 nginx
[root@web01 ~]# id nginx
uid=2222(nginx) gid=2222(nginx) groups=2222(nginx)
- 2.修改nfs共享服务器的配置文件
[root@nfs-01 ~]# cat /etc/exports
#share /upload
/upload 172.16.1.0/24(rw)
/nfs 172.16.1.0/24(rw,all_squash,anonuid=888,anongid=888)
/nfsbackup 172.16.1.0/24(rw)
#share for web
/webdata 172.16.1.0/24(rw,all_squash,anonuid=2222,anongid=2222)
- 3.在nfs服务器上创建共享目录并修改权限
[root@nfs-01 ~]# ll -d /*/ |grep "nginx"
drwxr-xr-x 3 nginx nginx 18 Jun 12 19:04 /webdata/
- 4.让后在客户端web服务器进行挂载
[root@web02 /usr/share/nginx/html/www]# mount -t nfs 172.16.1.31:/webdata/ /usr/share/nginx/html/www
[root@web02 /usr/share/nginx/html/www]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.9G 17G 10% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 102M 95M 52% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/webdata 19G 1.7G 18G 9% /usr/share/nginx/html/www
挂载时先将www移走创建一个新的www目录,挂载好之后再将之前www目录的内容移动过来
- 5.在网页新发表一个带图片的博客进行查看图片是否共享成功
负载均衡基础
负载均衡的作用:
让后端服务器,保持每台服务器工作量(负载)平均
如何实现负载均衡
负载均衡三个开源免费的软件
Nginx
Haproxy
Lvs
硬件设备
F5
A10
Redware
负载均衡和反向代理的区别
负载均衡
用户请求的转发
Lvs
反向代理
代替用户去找然后再发给用户
Nginx
Haproxy