java中的接口是类吗
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~