web集群-存储迁移与备份

📅 发布时间:2026/7/8 2:09:21 👁️ 浏览次数:
web集群-存储迁移与备份
1. ✅web站点目录迁移到nfs存储1.1. 部署NFS服务nfs01节点1.安装nfs-utils rpcbind yum -y install nfs-utils rpcbind 2.创建共享目录 mkdir -p /nfs/blog/ 3.添加www虚拟用户uid为1999 useradd -s /sbin/nologin -M -u 1999 www 4.修改共享目录拥有者 chown -R www.www /nfs/blog/ 5.修改nfs配置文件 vim /etc/exports /nfs/blog/uploads/ 172.16.1.0/24(rw,all_squash,anonuid1999,anongid1999) 6.重启nfs服务 systemctl reload nfs1.2. 客户端uploads目录挂载到存储找出uploads目录位置按F12打开调试模式左上角选择按钮选择图片元素1.安装nfs不用启动 yum -y install nfs-utils 2.添加www虚拟用户uid为1999 useradd -s /sbin/nologin -M -u 1999 www 3.备份uploads目录到/backup/blog/目录下 mkdir -p /backup/blog/ mv /app/code/blog/wp-content/uploads/* /backup/blog/ 4.挂载nfs存储 mount -t nfs nfs01:/nfs/blog/uploads/ /app/code/blog/wp-content/uploads/ 5.将/backup/blog/目录下的文件移回到挂载点目录 mv /backup/blog/* /app/code/blog/wp-content/uploads/ 5.永久挂载 vim /etc/fstab nfs01:/nfs/blog/uploads/ /app/code/blog/wp-content/uploads/2. ✅nfs存储实时同步到backup2.1. rsync服务端backup节点1.安装rsyncd yum -y install rsync 2.修改配置文件 vim /etc/rsyncd.conf ##rsyncd.conf start## fake super yes uid www gid www use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors read only false list false #hosts allow 10.0.0.0/24 #hosts deny 0.0.0.0/32 auth users rsync_backup secrets file /etc/rsync.password ##################################### [blog] comment path path /nfs/backup/blog/ 3.添加www虚拟用户uid为1999 useradd -s /sbin/nologin -M -u 1999 www 4.创建备份目录 mkdir -p /nfs/backup/blog/ 5.修改备份目录拥有者 chown -R www.www /nfs/backup/blog/ 6.添加密码文件并修改权限为600 echo rsync_backup:1 /etc/rsync.password chmod 600 /etc/rsync.password 8.重启rsyncd服务 systemctl restart rsyncd 9.本地测试 rsync -av /etc/hostname rsync_backup172.16.1.41::blog2.2. rsync客户端nfs01节点1.客户端测试rsync服务 rsync -av /etc/hostname rsync_backup172.16.1.41::blog 2.安装lsyncd服务 yum -y install lsyncd 3.修改配置文件 vim /etc/lsyncd.conf settings { logfile /var/log/lsyncd.log, pidfile /var/run/lsyncd.pid, statusFile /var/log/lsyncd.status, nodaemon true, maxProcesses 2 } sync { default.rsync, source /nfs/blog/uploads/, target rsync_backup172.16.1.41::blog, delay 10, delete true, rsync { binary /usr/bin/rsync, archive true, compress true, password_file /etc/rsync.client } } 4.准备rsync.client密码文件 echo 1 /etc/rsync.client chmod 600 /etc/rsync.client 5.启动lsyncd服务 systemctl enable lsyncd.service --now3. ✅验证在博客网站上传图片在nfs存储上有图片文件在backup上有图片文件4. ✅故障案例4.1. 编辑文章无法上传图片#查看日志文件定位问题 tail -f /var/log/nginx/blog-error.log #权限问题 /var/lib/nginx/tmp/client_body/0000000022 文件权限拒绝 #修改目录4.2. 页面显示排版有问题#原因 css文件太大未加载完成 #解决,开启缓存功能设置128个128k的缓存块 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_buffering on; fastcgi_buffers 128 128k; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }5. ✅从0-1搭建LNMP集群架构麒麟系统1️⃣部署rsync服务端backup安装rsync修改配置文件创建www虚拟用户创建/nfs/backup/blog/目录修改拥有人准备password文件修改权限启动rsyncd服务测试2️⃣部署nfs存储服务端nfs01安装lsyncd修改lsyncd.conf配置文件准备rsync.client密码文件修改600权限重启lsyncd服务测试安装nfs-utils rpcbind并启动创建www虚拟用户创建目录/nfs/blog/uploads修改拥有人修改/etc/exports配置文件reload重启3️⃣部署数据库db01安装mariadb-server并启动初始化数据库创建blog库添加blog用户4️⃣部署wordpress博客网站web01安装mariadb-server不用启动安装php修改配置文件启动php服务创建站点目录修改拥有者为www添加测试页面启动nginx服务浏览器访问测试页面将站点目录下wp-content/uploads目录挂载到nfs存储上下载wordpress代码解压代码到站点目录修改站点目录拥有者为www5️⃣异地rsync服务端aliyun安装rsync修改配置文件创建www虚拟用户创建/nfs/backup/blog/目录修改拥有人准备password文件修改权限启动rsyncd服务本地测试6️⃣本地rsync客户端backup测试rsync备份到异地aliyun节点编写备份脚本定时执行脚本备份到aliyun异地备份服务器5.1. 部署rsync服务端backup1.安装rsync yum -y install rsync 2.修改配置文件 vim /etc/rsyncd.conf ##rsyncd.conf start## fake super yes uid www gid www use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors read only false list false #hosts allow 10.0.0.0/24 #hosts deny 0.0.0.0/32 auth users rsync_backup secrets file /etc/rsync.password ##################################### [blog] comment path path /nfs/backup/blog/ 3.添加www虚拟用户uid为1999 useradd -s /sbin/nologin -M -u 1999 www 4.创建备份目录 mkdir -p /nfs/backup/blog/ 5.修改备份目录拥有者 chown -R www.www /nfs/backup/blog/ 6.添加密码文件并修改权限为600 echo rsync_backup:1 /etc/rsync.password chmod 600 /etc/rsync.password 8.重启rsyncd服务 systemctl restart rsyncd 9.本地测试 rsync -av /etc/hostname rsync_backup172.16.1.41::blog5.2. 部署nfs存储服务端nfs011.安装lsyncd yum -y install lsyncd 2.修改配置文件 vim /etc/lsyncd.conf settings { logfile /var/log/lsyncd.log, pidfile /var/run/lsyncd.pid, statusFile /var/log/lsyncd.status, nodaemon true, maxProcesses 2 } sync { default.rsync, source /nfs/blog/uploads/, target rsync_backup172.16.1.41::blog, delay 10, delete true, rsync { binary /usr/bin/rsync, archive true, compress true, password_file /etc/rsync.client } } 3.准备rsync.client密码文件修改600权限,创建监控目录 echo 1 /etc/rsync.client chmod 600 /etc/rsync.client mkdir -p /nfs/blog/uploads/ 4.启动lsyncd服务测试 systemctl enable lsyncd.service --now 5.安装nfs-utils rpcbind yum -y install nfs-utils rpcbind 6.启动rpcbind nfs systemctl enable rpcbind --now systemctl enable nfs --now 7.创建www虚拟用户 useradd -s /sbin/nologin -M -u 1999 www 8.共享目录/nfs/blog/uploads/,修改拥有人 chown -R www.www /nfs/blog/uploads/ 9.修改配置文件 vim /etc/exports /nfs/blog/uploads/ 172.16.1.0/24(rw,all_squash,anonuid1999,anongid1999) 10.reload重启 systemctl reload nfs5.3. 部署数据库db011.安装数据库 yum -y install mariadb-server 2.启动数据库 systemctl enable --now mariadb 3.初始化数据库 mysql_secure_installation 4.创建数据库 mysql -uroot -p create database blog; grant all on blog.* to blog172.16.1.% identified by blog;5.4. 部署wordpress博客网站web015.4.1. 部署php1.安装php yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-process php-xml php-json 2.修改子配置文件 sed -i s#^listen .*#listen 127.0.0.1:9000#g /etc/php-fpm.d/www.conf sed -i s#^user .*#user www#g /etc/php-fpm.d/www.conf sed -i s#^group .*#group www#g /etc/php-fpm.d/www.conf 3.添加www虚拟用户 useradd -s /sbin/nologin -M -u 1999 www 4.启动php服务 systemctl enable php-fpm.service --now5.4.2. 部署nginx#配置nginx源 vim /etc/yum.repos.d/ngx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/7/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_hotfixestrue 1.安装nginx yum -y install nginx 2.修改nginx主配置文件 sed -i s#^user.*#user www;#g /etc/nginx/nginx.conf 3.修改nginx子配置文件 vim /etc/nginx/conf.d/blog.conf server { listen 80; server_name blog.zbl.cn; root /app/code/blog; error_log /var/log/nginx/blog-error.log notice; access_log /var/log/nginx/blog-access.log main; location / { index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 4.创建站点目录 mkdir -p /app/code/blog/ #修改拥有者为www chown -R www /var/lib/nginx/ 5.启动nginx systemctl enable nginx --now 6.添加测试页面 cd /app/code/blog/ echo blog chk_ngx.html cat chk_php.phpEOF ?php phpinfo(); ? EOF cat chk_db.phpEOF ?php //数据库地址 $db_host172.16.1.51; //数据库用户名 $db_userblog; $db_passblog; //数据库名字 $db_nameblog; $link_idmysqli_connect($db_host,$db_user,$db_pass,$db_name); if($link_id){ echo mysql successful \n ; } else{ echo connection failed!\n ; } ? EOF 7.浏览器访问测试 http://blog.zbl.cn/chk_ngx.html http://blog.zbl.cn/chk_php.php http://blog.zbl.cn/chk_db.php5.4.3. 部署代码1.下载源代码 https://cn.wordpress.org/download/ wget https://cn.wordpress.org/latest-zh_CN.zip 2.解压代码 unzip latest-zh_CN.zip 3.将代码拷贝到站点目录 mv wordpress/* /app/code/blog/ 4.修改站点目录权限为nginx chown -R www.www /app/code/blog/ 5.检查 ll -d /app/code/blog/5.4.4. 将站点目录下wp-content/uploads目录挂载到nfs存储上1.安装nfs不用启动 #yum -y install nfs-utils 2.创建/uploads挂载点 mkdir -p /app/code/blog/wp-content/uploads/ 3.挂载到nfs存储 mount -t nfs nfs01:/nfs/blog/uploads/ /app/code/blog/wp-content/uploads/ 4.永久挂载 vim /etc/fstab nfs01:/nfs/blog/uploads/ /app/code/blog/wp-content/uploads/ nfs defaults 0 05.4.5. 浏览器访问http://blog.zbl.cn5.5. 异地rsync服务端aliyunvim /etc/rsyncd.conf ##rsyncd.conf start## fake super yes uid www gid rsync use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors read only false list false #hosts allow 172.16.1.0/24 #hosts deny 0.0.0.0/32 auth users aliyun_backup secrets file /etc/rsync.password ##################################### [blog] path /nfs/backup/blog/ 2.重启rsync服务 systemctl enable --now rsync 3.添加www用户 useradd -s /sbin/nologin -M -u 1999 www 4.创建模块需要的目录 mkdir -p /nfs/backup/blog/ 5.修改/backup/目录所有者为rsync chown -R www.www /nfs/backup/blog/ 6.创建/etc/rsync.password并写入 aliyun_backup:1 用户名:密码 7.修改/etc/rsync.password文件权限为600非常重要 chmod 600 /etc/rsync.password 8.测试 rsync -av /etc/hostname aliyun_backupip::backup5.6. 本地rsync客户端backup创建密码文件echo 1 /etc/rsync.client chmod 600 /etc/rsync.client备份到阿里云脚本#!/bin/bash ############################################################## # File Name:rsync_backup.sh # Version:V1.0 # Author:zbl # Organization:zhubaolin.blog.csdn.net # Desc: ############################################################## #1.vars ipxxx.xxx.xxx.xxx #2.rsync rsync -av /nfs/backup/blog/ aliyun_backup${ip}::blog --password-file/etc/rsync.client本地rsync服务端定时任务#每日备份到阿里云 15 09 * * * bash /server/scripts/rsync_backup.sh /dev/null 216. ✅从0-1搭建LNMP集群架构ubuntu系统1️⃣部署rsync服务端backup安装rsync修改配置文件创建www虚拟用户创建/nfs/backup/blog/目录修改拥有人准备password文件修改权限启动rsyncd服务测试2️⃣部署nfs存储服务端nfs01安装lsyncd修改lsyncd.conf配置文件准备rsync.client密码文件修改600权限重启lsyncd服务测试安装nfs-utils rpcbind并启动创建www虚拟用户创建目录/nfs/blog/uploads修改拥有人修改/etc/exports配置文件reload重启3️⃣部署数据库db01安装mariadb-server并启动初始化数据库创建blog库添加blog用户4️⃣部署wordpress博客网站web01安装mariadb-server不用启动安装php修改配置文件启动php服务创建站点目录修改拥有者为www添加测试页面启动nginx服务浏览器访问测试页面将站点目录下wp-content/uploads目录挂载到nfs存储上下载wordpress代码解压代码到站点目录修改站点目录拥有者为www5️⃣异地rsync服务端aliyun安装rsync修改配置文件创建www虚拟用户创建/nfs/backup/blog/目录修改拥有人准备password文件修改权限启动rsyncd服务本地测试6️⃣本地rsync客户端backup测试rsync备份到异地aliyun节点编写备份脚本定时执行脚本备份到aliyun异地备份服务器6.1. 部署rsync服务端backup1.安装rsync apt -y install rsync 2.修改配置文件(默认没有这个配置文件) vim /etc/rsyncd.conf ##rsyncd.conf start## fake super yes uid www gid www use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors read only false list false #hosts allow 10.0.0.0/24 #hosts deny 0.0.0.0/32 auth users rsync_backup secrets file /etc/rsync.password ##################################### [blog] comment path path /nfs/backup/blog/ 3.添加www虚拟用户uid为1999 useradd -s /sbin/nologin -M -u 1999 www 4.创建备份目录 mkdir -p /nfs/backup/blog/ 5.修改备份目录拥有者 chown -R www.www /nfs/backup/blog/ 6.添加密码文件并修改权限为600 echo rsync_backup:1 /etc/rsync.password chmod 600 /etc/rsync.password 8.重启rsync服务 systemctl restart rsync 9.本地测试 rsync -av /etc/hostname rsync_backup172.16.1.141::blog6.2. 部署nfs存储服务端nfs011.安装lsyncd apt -y install lsyncd 2.修改配置文件(默认没有) mkdir -p /etc/lsyncd vim /etc/lsyncd/lsyncd.conf.lua settings { logfile /var/log/lsyncd.log, pidfile /var/run/lsyncd.pid, statusFile /var/log/lsyncd.status, nodaemon false, maxProcesses 2 } sync { default.rsync, source /nfs/blog/uploads/, target rsync_backup172.16.1.141::blog, delay 10, delete true, rsync { binary /usr/bin/rsync, archive true, compress true, password_file /etc/rsync.client } } 3.准备rsync.client密码文件修改600权限,创建监控目录 echo 1 /etc/rsync.client chmod 600 /etc/rsync.client mkdir -p /nfs/blog/uploads/ 4.启动lsyncd服务测试 systemctl restart lsyncd.service 5.安装nfs-utils rpcbind apt -y install nfs-kernel-server rpcbind 6.启动rpcbind nfs systemctl enable rpcbind --now systemctl enable nfs-server --now 7.创建www虚拟用户 useradd -s /sbin/nologin -M -u 1999 www 8.共享目录/nfs/blog/uploads/,修改拥有人 chown -R www.www /nfs/blog/uploads/ 9.修改配置文件 vim /etc/exports /nfs/blog/uploads/ 172.16.1.0/24(rw,all_squash,anonuid1999,anongid1999) 10.reload重启 systemctl reload nfs-server6.3. 部署数据库db011.安装数据库 apt -y install mariadb-server 2.启动数据库 systemctl enable --now mariadb 3.初始化数据库 mysql_secure_installation 4.创建数据库 mysql -uroot -p create database blog; grant all on blog.* to blog172.16.1.% identified by blog; 5.ubuntu默认只能本地访问需要手动开启远程访问 vim /etc/mysql/mariadb.conf.d/50-server.cnf bind-address 0.0.0.06.4. 部署wordpress博客网站web016.4.1. 部署php1.安装php apt install -y php8.1-bcmath php8.1-bz2 php8.1-cgi php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-intl \ php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-soap \ php8.1-xml php8.1-zip php8.1-apcu php8.1-redis php8.1-snmp 2.修改子配置文件 sed -i s#^listen .*#listen 127.0.0.1:9000#g /etc/php/8.1/fpm/pool.d/www.conf sed -i s#^user .*#user www#g /etc/php/8.1/fpm/pool.d/www.conf sed -i s#^group .*#group www#g /etc/php/8.1/fpm/pool.d/www.conf 3.添加www虚拟用户 useradd -s /sbin/nologin -M -u 1999 www 4.启动php服务 systemctl enable php8.1-fpm.service --now6.4.2. 部署nginx1.安装nginx apt -y install nginx 2.修改nginx主配置文件 sed -i s#^user.*#user www;#g /etc/nginx/nginx.conf 3.修改nginx子配置文件 vim /etc/nginx/conf.d/blog.conf server { listen 80; server_name blog.zbl.cn; root /app/code/blog; error_log /var/log/nginx/blog-error.log notice; #access_log /var/log/nginx/blog-access.log main; location / { index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 4.创建站点目录 mkdir -p /app/code/blog/ #修改拥有者为www chown -R www /var/lib/nginx/ 5.启动nginx systemctl enable nginx --now 6.添加测试页面 cd /app/code/blog/ echo blog chk_ngx.html cat chk_php.phpEOF ?php phpinfo(); ? EOF cat chk_db.phpEOF ?php //数据库地址 $db_host172.16.1.151; //数据库用户名 $db_userblog; $db_passblog; //数据库名字 $db_nameblog; $link_idmysqli_connect($db_host,$db_user,$db_pass,$db_name); if($link_id){ echo mysql successful \n ; } else{ echo connection failed!\n ; } ? EOF 7.浏览器访问测试 http://blog.zbl.cn/chk_ngx.html http://blog.zbl.cn/chk_php.php http://blog.zbl.cn/chk_db.php6.4.3. 部署代码1.下载源代码 https://cn.wordpress.org/download/ wget https://cn.wordpress.org/latest-zh_CN.zip 2.安装解压工具 apt install unzip 3.解压代码 unzip latest-zh_CN.zip 4.将代码拷贝到站点目录 mv wordpress/* /app/code/blog/ 5.修改站点目录权限为nginx chown -R www.www /app/code/blog/ 6.检查 ll -d /app/code/blog/6.4.4. 将站点目录下wp-content/uploads目录挂载到nfs存储上1.安装nfs不用启动 apt -y install nfs-common 2.创建/uploads挂载点 mkdir -p /app/code/blog/wp-content/uploads/ 3.挂载到nfs存储 mount -t nfs 172.16.1.131:/nfs/blog/uploads/ /app/code/blog/wp-content/uploads/ 4.永久挂载 vim /etc/fstab 172.16.1.131:/nfs/blog/uploads/ /app/code/blog/wp-content/uploads/ nfs defaults 0 06.4.5. 浏览器访问http://blog.zbl.cn6.5. 异地rsync服务端aliyunvim /etc/rsyncd.conf ##rsyncd.conf start## fake super yes uid www gid www use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors read only false list false #hosts allow 172.16.1.0/24 #hosts deny 0.0.0.0/32 auth users aliyun_backup secrets file /etc/rsync.password ##################################### [blog] path /nfs/backup/blog/ 2.重启rsync服务 systemctl enable --now rsync 3.添加www用户 useradd -s /sbin/nologin -M -u 1999 www 4.创建模块需要的目录 mkdir -p /nfs/backup/blog/ 5.修改/backup/目录所有者为rsync chown -R www.www /nfs/backup/blog/ 6.创建/etc/rsync.password并写入 aliyun_backup:1 用户名:密码 7.修改/etc/rsync.password文件权限为600非常重要 chmod 600 /etc/rsync.password 8.测试 rsync -av /etc/hostname aliyun_backupip::backup6.6. 本地rsync客户端backup创建密码文件echo 1 /etc/rsync.client chmod 600 /etc/rsync.client备份到阿里云脚本#!/bin/bash ############################################################## # File Name:rsync_backup.sh # Version:V1.0 # Author:zbl # Organization:zhubaolin.blog.csdn.net # Desc: ############################################################## #1.vars ipxxx.xxx.xxx.xxx #2.rsync rsync -av /nfs/backup/blog/ aliyun_backup${ip}::blog --password-file/etc/rsync.client本地rsync服务端定时任务#每日备份到阿里云 15 09 * * * bash /server/scripts/rsync_backup.sh /dev/null 21