需求:
web01 上的 maraidb 数据库单独放到一台服务器 db01,
web01上的 静态图片资源 也单独放一台服务器上 nfs
1.先安装 mariadb
- 启动mariadb
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
mysqladmin password '123456' (刚安装上需要给root 设置密码)
3.导出10.0.0.7的所有的库
[root@web01 ~]# mysqldump -uroot -plzy123.com -A > all.sql
将web01的数据库停止禁止启动:
[root@web01 ~]# systemctl stop mariadb
[root@web01 ~]# systemctl disable mariadb
将all.sql发送到10.0.0.51的root下
[root@web01 ~]# scp all.sql 10.0.0.51:/root/
4.导入到10.0.0.51的数据库中
[root@db01 ~]# mysql -uroot < all.sql
重启数据库:
[root@db01 ~]# systemctl restart mariadb
检查数据是否导入成功
mysql -uroot -p123456 -e 'show databases;'
5.修改代码中的配置文件指向新的数据库
第一步: 要授权普通用户可以进行远程连接51数据库
[root@db01 ~]# mysql -uroot -p123456
grant all on *.* to baimei@'%' identified by '123456';
第二步: 测试通过web01是否可以使用 baimei 用户远程连接10.0.0.51
mysql -h 10.0.0.51 -ubaimei -p123456 -e 'show databases;'
第三步: 修改代码
查找到包含数据库信息的配置文件
[root@web01 wordpress]# grep -r 'lzy123.com' ./*
./wp-config.php:define( 'DB_PASSWORD', 'lzy123.com' );
修改一个用户名称和远程的数据库IP地址
2)拆分静态数据到NFS服务器
1.10.0.0.31安装NFS服务
[root@nfs ~]# yum -y install nfs-utils
2.创建匿名压缩用户www
[root@nfs ~]# groupadd -g666 www
[root@nfs ~]# useradd -u666 -g666 -M -s /sbin/nologin www
3.修改配置文件
[root@nfs ~]# cat /etc/exports
/data/wordpress 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/zh 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
4.创建必要的数据文件
[root@nfs ~]# mkdir -p /data/wordpress
[root@nfs ~]# mkdir -p /data/zh
[root@nfs ~]# chown www.www /data/*
[root@nfs ~]# ll /data/
total 0
drwxr-xr-x 2 www www 6 Apr 6 10:03 wordpress
drwxr-xr-x 2 www www 6 Apr 6 10:03 zh
5.启动NFS
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
6.查找wordpress上传图片的目录位置
右键复制图片链接地址: 找到上传目录uploads
http://blog.baimei.com/wp-content/uploads/2023/04/1.jpg
1)将2023目录拷贝到31的/data/wordpress/
[root@web01 ~]# scp -r /code/blog/wordpress/wp-content/uploads/* 172.16.1.
31:/data/wordpress/
NFS重新授权下下面的目录权限
[root@nfs ~]# chown -R www.www /data/wordpress/
[root@nfs ~]# ll /data/wordpress/
2)将31/data/wordpress挂载到uploads目录
WEB01:
一.安装nfs-utils
[root@web01 ~]# yum -y install nfs-utils
二.查看共享的目录
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/zh 172.16.1.0/24
/data/wordpress 172.16.1.0/24
三.挂载NFS共享目录/data/wordpress
[root@web01 ~]# mount -t nfs 172.16.1.31:/data/wordpress /code/blog/wordpress/wp-content/uploads/
[root@web01 ~]# df -h
测试: 新建一篇文章,看看图片是否在 31上了。
如果wordpress 新建一个 文件夹,是用的Php 里边的www用户来创建的.
3)快速扩展一台WEB02服务器
1.安装Nginx
[root@web02 ~]# scp 172.16.1.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
[root@web02 ~]# yum -y install nginx
2.安装PHP
批量删除PHP软件:
[root@web02 ~]# rpm -qa|grep php|xargs yum -y remove
安装PHP软件
[root@web02 ~]# tar xf php71.tar.gz
安装:
[root@web02 ~]# yum -y localinstall *.rpm
3.安装nfs-utils
[root@web02 ~]# yum -y install nfs-utils
4.创建虚拟用户www
[root@web02 ~]# groupadd -g666 www
[root@web02 ~]# useradd -u666 -g666 -M -s /sbin/nologin www
5.同步服务的配置文件到web02
同步Nginx配置:
[root@web02 ~]# rsync -avz --delete 172.16.1.7:/etc/nginx/ /etc/nginx/
同步PHP配置:
[root@web02 ~]# rsync -avz --delete 172.16.1.7:/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf
6.同步代码文件到web02
打包code然后拷贝到web02 进行解压到/目录
.....
[root@web02 ~]# tar xf code.tar.gz -C /
[root@web02 ~]# ll /code/
total 4
drwxr-xr-x 3 root root 23 Apr 4 11:27 blog
drwxr-xr-x 14 www www 4096 Apr 4 12:05 zh
[root@web02 ~]# ll /code/blog/
total 4
drwxr-xr-x 5 www www 4096 Apr 6 09:20 wordpress
启动服务:
root@web02 ~]# systemctl start nginx php-fpm
[root@web02 ~]# systemctl enable nginx php-fpm
挂载NFS到本地上传目录
[root@web02 ~]# mount -t nfs 172.16.1.31:/data/wordpress /code/blog/wordpress/wp-content/uploads/
[root@web02 ~]# df -h
04.部署代理服务器 10.0.0.5
haosts解析到10.0.0.5 可以正常访问wordpress和知乎
2.反向代理配置
1)Nginx安装
LB01: 10.0.0.5配置
[root@lb01 ~]# scp 10.0.0.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
安装Nginx
[root@lb01 conf.d]# yum -y install nginx
配置Nginx
[root@lb01 conf.d]# cat proxy.conf
server {
listen 80;
server_name blog.baimei.com;
location / {
proxy_pass http://10.0.0.7:80;
}
}
[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 conf.d]# systemctl restart nginx
windows修改HOSTS文件解析到10.0.0.5
配置携带头部和HTTP1.1长连接
proxy_set_header Host $http_host; # 携带头部信息
proxy_http_version 1.1; # 携带长链接
代理必须携带的参数及优化:
[root@lb01 conf.d]# cat proxy.conf
server {
listen 80;
server_name blog.baimei.com;
location / {
proxy_pass http://10.0.0.7:80;
proxy_set_header Host $http_host; # 携带头部信息
proxy_http_version 1.1; # 长连接
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 携带客户端IP
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
}
}