如下图:
搭建wordpress平台:
1.正常搭建web01服务器
- 必须先搭建web01的wordpress服务器,使用本地数据库
- 然后scp把整个代码目录复制到web02,然后再做其他操作
- 新增加web03也是一样,使用scp将web01业务代码拷贝到本地,然后再做其他操作
搭建服务:
参考上一篇文章搭建wordpress
不需要搭建电商网站
web02:
然后,scp到web02覆盖
1.安装nginx和php
2.覆盖nginx和php配置文件
3.nginx配置文件,user_name www.wp.com; 一定要是域名,要不然导出数据库会携带ip导致无法使用域名
4.覆盖项目代码目录
rsync -av root@10.0.0.203:/etc/nginx/ /etc/nginx/ --delete
rsync -av root@10.0.0.203:/etc/php-fpm.d/ /etc/php-fpm.d/ --delete
rsync -av root@10.0.0.203:/www/ /www/ --delete
5.新建虚拟用户,更改属主
6.发布文章,图片加文章,方便后面测试
2.反向代理,负载均衡
- upstream定义反向代理资源池
- proxy_pass将请求转发给了地址池,
- 负载均衡地址池,平均分发,一个请求分发一个
1.配置nginx仓库yum仓库,安装nginx(参考上几篇文章)
2.配置反向代理,和,负载均衡
[root@lb01 conf.d]# vim lb.conf
upstream webs {
server 172.16.1.203;
server 172.16.1.204;
}
server {
listen 80;
server_name www.wp.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
3.在/etc/nginx/创建include proxy_params;
编辑写入 vim /etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
4.更改nginx虚拟用户www,架构内统一用户uid gid为666的www
groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin www
更改nginx.conf配置文件
user nginx;改为user www;
6.启动nginx服务
[root@SLB01 /etc/nginx]# systemctl start nginx
[root@SLB01 /etc/nginx]# systemctl enable nginx
3.前端web服务器和mysql服务器
3.1配置db服务器
1. yum -y install mariadb-server
2.启动数据库
systemctl enable --now mariadb
3.web01导出数据库所有数据 (web01服务器)
[root@web01 ~]# mysqldump -uroot -phsc123.com -A > all.sql
检查导出的库是否正确
vim all.sql # 搜索下你发布的博文是否在sql语句
4.将all.sql拷贝到db服务器
[root@web01 ~]# scp all.sql 10.0.0.207:/root/
5.db服务器将all.sql导入数据库
[root@db01 ~]# mysql -uroot < all.sql
[root@db01 ~]# systemctl restart mariadb
[root@db01 ~]# mysql -uroot -phsc123.com ## 查看是否能进入
4.授权hsc普通账号密码为hsc123.com 管理所有库和所有的表
[root@db01 ~]# mysql -uroot -phsc123.com
MariaDB [(none)]> grant all on *.* to hsc@'%' identified by 'hsc123.com';
systemctl restart mariadb
3.2修改wordpress配置文件,连接数据库
- 注意:数据库无法远程使用root用户,需要创建普通用户给权限
- 找不到数据库连接配置文件的情况,使用grep -r过滤整个项目目录 grep -r ‘数据库密码’
1.关闭所有web服务器的数据库服务
systemctl stop mariadb
systemctl disable mariadb
vim /www/wp-config-sample.php
2.修改项目代码配置文件
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'hsc');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'hsc123.com');
/** MySQL主机 */
define('DB_HOST', '172.16.1.207');
3.在web服务器上测试连接db服务器
mysql -h172.16.1.207 -uhsc -phsc123.com
4.nfs配置,静态数据服务器
nfs服务器配置:
1.安装nfs服务
yum -y install nfs-utils
2.指定nfs压缩用户,架构内统一用户uid gid为666的www
groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin www
mkdir /data
chown www.www /data
3.配置nfs配置文件 vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
4.启动nfs服务
systemctl start nfs
systemctl enable nfs
5.查看nfs有没有配置成功
cat /var/lib/nfs/etab
6.把静态数据,从web服务器薅一份,要不然挂载之后就没有了
web01和web02服务器配置:
1.找到静态数据目录,类似找图片目录
ll -d /www/wp-content/uploads/
2.showmount -e 172.16.1.205查看可挂载目录
3.挂载,并写入开机自动挂载
mount -t nfs 172.16.1.205:/data /www/wp-content/uploads/
df -h
[root@web01]# vim /etc/fstab
172.16.1.205:/data/ /www/wp-content/uploads/ nfs defaults 0 0
4.所有完成
windows配置hosts解析
检查所有服务器运行进程,端口
5.测试
1.测试负载均衡
1.更改nginx配置文件:
root /www;改为 root /ceshi;
2.创建文件
在web01上 echo web01..... > /ceshi/index.html
在web02上 echo web02..... > /ceshi/index.html
3.重启nginx服务
4.访问网页一直刷新,看看是否负载均衡,平均分发请求
5.查看日志
2.测试数据连通性
- 访问迁移数据库前的文章,看看静态资源和动态资源是否显示正常,也就是文字和图片
- 发布新文章或者评论等,查看web01,web02,db,nfs里是否都有相应的数据
6.今日总结
– upstream定义反向代理资源池
– proxy_pass将请求转发给了地址池,
– mysqldump -uroot -phsc123.com -A > all.sql
– proxy_set_header Host $http_host;
- 数据库 grant all on . to hsc@’%’ identified by ‘hsc123.com’;