架构(day12)

网友投稿 208 2022-10-30


架构(day12)

Web集群数据拆分及共享存储

数据库拆分

环境准备

主机名

WanIP

LanIP

角色

安装应用

web01

10.0.0.7

172.16.1.7

web网站

nginx php

db01

10.0.0.8

172.16.1.8

数据库

MySQL(mariadb)

旧数据库操作

# 1.wp库数据备份 [root@web01 ~]# mysqldump -u用户名 -p密码 -B 库名字 > /tmp/wp.sql [root@web01 ~]# mysqldump -uroot -p -B wp > /tmp/wp.sql # 2.将备份好的数据拷贝到新数据库服务器中 [root@web01 ~]# scp /tmp/wp.sql root@172.16.1.51:/tmp/ # 3.在下面新数据库操作做完之后,停掉旧数据库 [root@web01 ~]# systemctl stop mariadb

新数据库操作

# 1.安装数据库 [root@db01 ~]# yum install -y mariadb-server # 2.启动数据库并加入开机自启 [root@db01 ~]# systemctl start mariadb [root@db01 ~]# systemctl enable mariadb # 3.给MySQL的root用户设置密码 [root@db01 ~]# mysqladmin -uroot -p password '123' Enter password: # 如果没有密码则直接回车,如果有密码就输入旧密码 # 4.导入数据 [root@db01 ~]# mysql -uroot -p123 < /tmp/wp.sql # 5.检查是否导入成功 [root@db01 ~]# mysql -uroot -p123 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | wordpress | +--------------------+ # 6.创建用户 MariaDB [(none)]> grant all on *.* to wp_user@'%' identified by '123'; # 7.测试web01是否可以远程连接db01的MySQL [root@web01 ~]# mysql -uwp_user -p123 -h10.0.0.51 # 8.修改wordpress连接数据库的配置 [root@web01 wordpress]# vim /blog/wordpress/wp-config.php define( 'DB_NAME', 'wp' ); /** Database username */ define( 'DB_USER', 'wp_user' ); /** Database password */ define( 'DB_PASSWORD', '123' ); /** Database hostname */ define( 'DB_HOST', '10.0.0.51' );

多台web部署

环境准备

主机名

WanIP

LanIP

角色

安装应用

web01

10.0.0.7

172.16.1.7

web网站

nginx php

web02

10.0.0.8

172.16.1.8

web网站

nginx php

db01

10.0.51

172.16.51

数据库

MySQL(mariadb)

部署web02

# 1.添加yum源 [root@web01 yum.repos.d]# scp /etc/yum.repos.d/nginx.repo /etc/yum.repos.d/php.repo 172.16.1.8:/etc/yum.repos.d/ # 2.创建[root@web02 ~]# groupadd -g 666 [root@web02 ~]# useradd -u 666 -g 666 -s /sbin/nologin -M # 3.安装nginx和php [root@web02 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb nginx mariadb-server # 4.添加nginx虚拟主机配置文件 [root@web02 blog]# cat /etc/nginx/conf.d/blog.wjh.com.conf server{ listen 80; server_name wjh.com; root /blog/wordpress; index index.php index.html; location ~ \.php$ { #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/opt/php.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # 5.修改nginx启动用户 [root@web02 ~]# vim /etc/nginx/nginx.conf user # 6.修改php启动用户 [root@web02 ~]# vim /etc/php-fpm.d/conf [user = group = ;listen = 127.0.0.1:9000 listen = /opt/php.sock listen.owner = listen.group = # 7.创建站点目录 [root@web02 ~]# mkdir /blog ############ 8.下载wordpress代码 [root@web02 ~]# cd /blog/ [root@web02 blog]# wget ############ 9.解压wordpress [root@web02 blog]# tar xf latest-zh_CN.tar.gz ############# 10.授权 [root@web02 blog]# chown -R /blog/ # 8.拷贝web01代码到web02上 [root@web01 php]# scp -r /blog/wordpress/ 172.16.1.8:/blog # 9.授权 [root@web02 blog]# chown -R /blog/ # 10.启动nginx和php [root@web02 blog]# systemctl start nginx php-fpm # 11.域名解析到web02 10.0.0.8 zls.com

两台web加一台数据库存在问题

两边web数据不一致,没有做共享存储

解决用户数据不一致问题

共享存储 环境准备

环境准备

主机名

WanIP

LanIP

角色

安装应用

web01

10.0.0.7

172.16.1.7

web网站、共享存储客户端

nginx php nfs

web02

10.0.0.8

172.16.1.8

web网站、共享存储客户端

nginx php nfs

db01

10.0.0.51

172.16.1.51

数据库

MySQL(mariadb)

nfs

10.0.0.31

172.16.1.31

共享存储服务端

nfs

部署nfs服务端

# 1.安装nfs服务 [root@nfs ~]# yum install -y nfs-utils # 2.修改nfs配置文件 [root@nfs ~]# vim /etc/exports /data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash) # 3.创建共享存储目录 [root@nfs ~]# mkdir /data # 4.创建[root@nfs ~]# groupadd -g 666 [root@nfs ~]# useradd -u 666 -g 666 -s /sbin/nologin -M # 5.授权共享存储目录 [root@nfs ~]# chown /data # 6.启动服务并加入开机自启 [root@nfs ~]# systemctl start nfs [root@nfs ~]# systemctl enable nfs # 7.检查nfs配置文件是否生效 [root@nfs ~]# cat /var/lib/nfs/etab

nfs客户端操作

# 1.安装nfs服务 [root@web01 ~]# yum install -y nfs-utils [root@web02 ~]# yum install -y nfs-utils # 2.查看挂载点 [root@web01 ~]# showmount -e 172.16.1.31 [root@web02 ~]# showmount -e 172.16.1.31 # 3.拷贝已有数据到共享目录 [root@web01 ~]# scp -r /blog/wordpress/wp-content/uploads/2022 172.16.1.31:/data [root@web02 ~]# scp -r /blog/wordpress/wp-content/uploads/2022 172.16.1.31:/data # 4.给nfs的/data目录授权 [root@nfs ~]# chown -R /data # 5.挂载 [root@web01 ~]# mount -t nfs 172.16.1.31:/data /blog/wordpress/wp-content/uploads/ [root@web02 ~]# mount -t nfs 172.16.1.31:/data /blog/wordpress/wp-content/uploads/

实现数据的实时同步

## 虚拟机backup 作为 rsync服务端 : # 创建gid号是666 然后创建用户指定uid为666 加入不允许用户登陆 不创建家目录 [root@backup ~]# groupadd -g 666 [root@backup ~]# useradd -u 666 -g 666 -s /sbin/nologin -M [root@nfs ~]# groupadd -g 666 [root@nfs ~]# useradd -u 666 -g 666 -s /sbin/nologin -M # 安装rsync [root@backup ~]# yum install -y rsync # 修改rsync配置文件中 修改指定用户 修改指定备份的目录 [root@backup ~]# vim /etc/rsyncd.conf uid = gid = port = 873 fake super = yes use chroot = no max connections = 200 timeout = 600 ignore errors read only = false list = false auth users = secrets file = /etc/rsync.passwd log file = /var/log/rsyncd.log ##################################### [nfs_backup] comment = nfs_backup path = /backup [nfs_data] comment = nfs_data path = /data # 设置密码文件 并赋予 600权限 [root@backup ~]# vim /etc/rsync.passwd [root@backup ~]# chmod 600 /etc/rsync.passwd # 创建备份目录和实时同步目录 并修改权限为[root@backup ~]# mkdir /{backup,data} [root@backup ~]# chown /{backup,data} # 启动rsyncd服务 并加入开机自启 [root@backup ~]# systemctl start rsyncd [root@backup ~]# systemctl enable rsyncd # 检查服务进程 [root@backup ~]# ps -ef|grep [r]sync # 检查服务端口 [root@backup ~]# netstat -lntup|grep 873 ## 虚拟机nfs 作为 rsynd客户端 配置如下: # 安装rsync和inotify [root@nfs ~]# yum install -y rsync inotify-tools # 测试数据推送 [root@nfs ~]# rsync -avz /data/ [root@nfs ~]# rsync -avz /data/ ## 密码是上面指定的123 # 编写rsyncd同步脚本 [root@nfs ~]# vim rsync_inotify.sh #!/bin/bash dir=/data/ export RSYNC_PASSWORD=123 inotifywait -mrq --format '%w %f' -e create,delete,attrib,close_write $dir|while read line;do rsync -az --delete $dir done & # 启动脚本 网站写入文章 查看是否同步 [root@nfs ~]# ll /data drwxr-xr-x 3 16 Jun 10 03:04 2022 [root@backup ~]# ll /data drwxr-xr-x 3 16 Jun 10 2022 2022

不使用wordpress,使用wecenter

# 下载WeCenter_3-2-1。zip到/blog下 并解压 修改权限 [root@web01 ~]# unzip WeCenter_3-2-1 [root@web01 ~]# ll /blog/ drwx------ 14 root root 296 Jun 4 2018 WeCenter_3-2-1 drwxr-xr-x 5 4096 Jun 9 16:12 wordpress [root@web01 ~]# chown -R /blog/WeCenter_3-2-1/ # 编辑nginx配置文件 [root@web01 ~]# vim /etc/nginx/conf.d/blog.wu.com.conf server{ listen 80; server_name blog.wu.com; root /blog/WeCenter_3-2-1; location /{ index index.php index.html; } location ~ \.php$ { #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/opt/php.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } # 重启nginx php [root@web01 ~]# systemctl reload nginx [root@web01 ~]# systemctl reload php-fpm # 测试nginx连接php(编写php info代码) [root@web01 ~]# vim /blog/WeCenter_3-2-1/info.php # windows域名解析 打开路径:C:\Windows\System32\drivers\etc 编辑hosts文件 10.0.0.7 blog.wu.com # 打开浏览器访问:# 测试完成后浏览器访问:打开浏览器访问:# 测试完成后浏览器访问:http://blog.wu.com


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot集成mongodb的增删改查的示例代码
下一篇:how tomcat works 读书笔记 十一 StandWrapper 下
相关文章

 发表评论

暂时没有评论,来抢沙发吧~