35、架构拆分,搭建

如下图:

搭建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’;
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇