1. web01数据库迁移到db01
项目背景: 网站集群访问量或数据量越来越大单台机器无法承受.
- 项目实时步骤:
- 准备新环境部署数据库服务(版本一致)
- 临时停止服务,旧环境备份,新环境恢复,测试
- 修改数据库地址(用户,密码,库),指向新的环境(wp-config.php 代码中连接数据库的配置文件)
1.1 检查db01数据库环境
查看代码
# 配置域名解析
[root@db01 ~]# cat >/etc/hosts <<EOF
> 172.16.1.75 lb01
> 172.16.1.76 lb02
> 172.16.1.69 web01
> 172.16.1.70 web02
> 172.16.1.72 web03
> 172.16.1.68 nfs01
> 172.16.1.67 backup
> 172.16.1.81 db01
> 172.16.1.71 m01
> EOF
[root@db01 ~]#
# 安装数据库
[root@db01 ~]# yum install mariadb-server -y
# 开机自启
[root@db01 ~]# systemctl enable mariadb.service
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@db01 ~]#
[root@db01 ~]# systemctl is-enabled mariadb.service
enabled
[root@db01 ~]# systemctl start mariadb.service
[root@db01 ~]#
[root@db01 ~]# systemctl status mariadb.service
● mariadb.service - MariaDB 10.3.39 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2024-10-29 15:20:18 CST; 2s ago
# 连接数据库,刚开始没密码可以直接连接
[root@db01 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.39-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)
MariaDB [(none)]> select user,host from mysql;
ERROR 1046 (3D000): No database selected
MariaDB [(none)]>
MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | db01 |
| root | localhost |
+------+-----------+
4 rows in set (0.000 sec)
MariaDB [(none)]> exit
Bye
1.2 web备份数据库
查看代码
# 导出数据库文件
[root@web01 ~]# mysqldump -uroot -p1 --all-databases | gzip > all_db.sql.gz
[root@web01 ~]#
[root@web01 ~]# ll
总用量 27384
-rw-r--r-- 1 root root 724025 10月 29 16:26 all_db.sql.gz
-rw------- 1 root root 3296 9月 29 21:06 anaconda-ks.cfg
-rw-r--r-- 1 root root 0 9月 29 21:07 initial-setup-ks.cfg
drwxr-xr-x 2 root root 6 10月 28 17:09 wordpress
-rw-r--r-- 1 root root 27309922 9月 11 03:00 wordpress.zip
[root@web01 ~]#
# 向db01服务器发送数据库文件
[root@web01 ~]# scp all_db.sql.gz root@db01:/opt
Authorized users only. All activities may be monitored and reported.
root@db01's password:
all_db.sql.gz 100% 707KB 80.4MB/s 00:00
# 导入web01数据
[root@db01 ~]# zcat /opt/all_db.sql.gz | mysql -uroot -p
Enter password:
# 重启数据库
[root@db01 ~]# systemctl restart mariadb.service
[root@db01 ~]# zcat /opt/all_db.sql.gz | mysql -uroot -p1
[root@db01 ~]#
#查看数据
[root@db01 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.3.39-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select user,host from mysql.user;
+-----------+------------+
| user | host |
+-----------+------------+
| root | 127.0.0.1 |
| blog | 172.16.1.% |
| wordpress | 172.16.1.% |
| root | ::1 |
| blog | localhost |
| root | localhost |
| wordpress | localhost |
+-----------+------------+
7 rows in set (0.000 sec)
MariaDB [(none)]> show tables from wordpress;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.000 sec)
MariaDB [(none)]> select * from wp_posts\G;
ERROR 1046 (3D000): No database selected
ERROR: No query specified
MariaDB [(none)]> select * from wordpress.wp_posts\G; # 可以看到新建博客的图片信息
*************************** 6. row ***************************
ID: 6
post_author: 1
post_date: 2024-10-29 16:14:58
post_date_gmt: 2024-10-29 08:14:58
post_content: <!-- wp:paragraph -->
<p>windows10 高清壁纸,山水风景画</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
post_title: 高清壁纸
post_excerpt:
post_status: trash
comment_status: open
ping_status: open
post_password:
post_name: __trashed
to_ping:
pinged:
post_modified: 2024-10-29 16:14:58
post_modified_gmt: 2024-10-29 08:14:58
post_content_filtered:
post_parent: 0
guid: http://blog.web01.cn/?p=6
menu_order: 0
post_type: post
post_mime_type:
comment_count: 0
*************************** 7. row ***************************
ID: 7
post_author: 1
post_date: 2024-10-29 15:57:05
post_date_gmt: 2024-10-29 07:57:05
post_content: {"version": 3, "isGlobalStylesUserThemeJSON": true }
post_title: Custom Styles
post_excerpt:
post_status: publish
comment_status: closed
ping_status: closed
post_password:
post_name: wp-global-styles-twentytwentyfour
to_ping:
pinged:
post_modified: 2024-10-29 15:57:05
post_modified_gmt: 2024-10-29 07:57:05
post_content_filtered:
post_parent: 0
guid: http://blog.web01.cn/?p=7
menu_order: 0
post_type: wp_global_styles
post_mime_type:
comment_count: 0
*************************** 8. row ***************************
ID: 8
post_author: 1
post_date: 2024-10-29 16:14:22
post_date_gmt: 2024-10-29 08:14:22
post_content: <!-- wp:paragraph -->
<p>windows10 高清壁纸,山水风景画</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
<!-- wp:image {"id":16,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="http://blog.web01.cn/wp-content/uploads/2024/10/壁纸-2.jpg" alt="" class="wp-image-16"/></figure>
<!-- /wp:image -->
post_title: 高清壁纸
post_excerpt:
post_status: publish
comment_status: open
ping_status: open
post_password:
post_name: %e9%ab%98%e6%b8%85%e5%a3%81%e7%ba%b8
to_ping:
pinged:
post_modified: 2024-10-29 16:17:29
post_modified_gmt: 2024-10-29 08:17:29
post_content_filtered:
post_parent: 0
guid: http://blog.web01.cn/?p=8
menu_order: 0
post_type: post
post_mime_type:
comment_count: 0
MariaDB [(none)]> exit
Bye
1.3 修改web数据库连接文件并关闭数据库
# 修改数据库连接文件
[root@web01 ~]# grep DB /app/code/blog/wp-config.php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', '1' );
define( 'DB_HOST', '172.16.1.81' ); # db01的ip
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' )
# 关闭数据库
[root@web01 ~]# systemctl stop mariadb
1.4 后续调试
去掉ngx的网站迁移更新页面(现在不用做)
1.4.1 访问网站并发布文章测试
1.4.2 数据库查看信息
select post_title,post_content from wordpress.wp_posts where post_title="歌词"\G;
[root@db01 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 30
Server version: 10.3.39-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select post_title,post_content from wordpress.wp_posts where post_title="歌词"\G;
*************************** 1. row ***************************
post_title: 歌词
post_content: <!-- wp:paragraph -->
<p>这是一个寂寞的天下着有些忧伤的雨</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
<!-- wp:image {"id":19,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="http://blog.web01.cn/wp-content/uploads/2024/10/rain.jpg" alt="" class="wp-image-19"/></figure>
<!-- /wp:image -->
*************************** 2. row ***************************
post_title: 歌词
post_content: <!-- wp:paragraph -->
<p>这是一个寂寞的天下着有些忧伤的雨</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
<!-- wp:image {"id":19,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="http://blog.web01.cn/wp-content/uploads/2024/10/rain.jpg" alt="" class="wp-image-19"/></figure>
<!-- /wp:image -->
2 rows in set (0.000 sec)
ERROR: No query specified
MariaDB [(none)]>
2. web01-存储迁移到nfs01上
2.1 背景
公司进行新的业务,业务运行在单台web服务器+db数据库上.
用户,访问增加,决定迁移数据库(已经做),迁移用户上传的数据到存储.
2.2 规划与环境准备
数据量,迁移流程.准备,开会.
迁移前准备好环境,测试
- 事先准备:
- nfs服务端:准备好存储共享目录
- web服务器:找出用户上传的目录.
- 测试
- 备份
- 修改ngx,php用户为www(1999),nfs共享用户www(1999)
- 正式迁移:(业务低谷期)
- web服务器:用户上传目录已有内容需要移动出来,挂载存储,移动回去.
- 浏览器访问网站:上传测试
2.3 详细步骤
nginx,php-fpm.service,nfs统一用户www(id 3999)
2.3.1 nfs01(存储)
[root@nfs01 ~]# cat /etc/exports
# nfs_server_cfg
/nfsdata/ 172.16.1.0/24(rw,all_squash)
/app/code/blog/ 172.16.1.0/24(rw,all_squash,anonuid=3999,anongid=3999)
/nfs01_ans/ 172.16.1.0/24(rw,all_squash,anonuid=4999,anongid=4999)
[root@nfs01 ~]#
[root@nfs01 ~]# id 3999
用户id=3999(www) 组id=3999(www) 组=3999(www)
[root@nfs01 ~]#
[root@nfs01 ~]# mkdir -p /app/code/blog/
[root@nfs01 ~]# chown -R www.www /app/code/blog/
[root@nfs01 ~]#
[root@nfs01 ~]# systemctl reload nfs
[root@nfs01 ~]# showmount -e 172.16.1.68
Export list for 172.16.1.68:
/nfs01_ans 172.16.1.0/24
/app/code/blog 172.16.1.0/24
/nfsdata 172.16.1.0/24
[root@nfs01 ~]#
2.3.2 web01(web服务器)
修改用户,挂载
root@web01 ~]# vim /etc/nginx/nginx.conf
[root@web01 ~]# grep user /etc/nginx/nginx.conf
user www;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'"$http_user_agent" "$http_x_forwarded_for"';
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
[root@web01 ~]#
[root@web01 ~]# egrep '^(user|group|listen) =' /etc/php-fpm.d/www.conf
user = www
group = www
listen = 127.0.0.1:9000
[root@web01 ~]# systemctl restart php-fpm.service
[root@web01 ~]# systemctl restart nginx
[root@web01 ~]#
[root@web01 ~]# chown -R www.www /app/code/blog/
[root@web01 ~]#
[root@web01 ~]# ll /app/code/blog/
[root@web01 ~]# ll -d /app/code/blog/
drwxr-xr-x 5 www www 4096 10月 28 21:50 /app/code/blog/
[root@web01 ~]# cd /app/code/blog/wp-content/
[root@web01 /app/code/blog/wp-content]# ls
index.php languages plugins themes uploads
[root@web01 /app/code/blog/wp-content]#
[root@web01 /app/code/blog/wp-content]# mv uploads uploads_bak
[root@web01 /app/code/blog/wp-content]#
# 下面二选一
[root@web01 /app/code/blog/wp-content]# mv uploads_bak/* uploads/
[root@web01 /app/code/blog/wp-content]# scp -rp uploads_bak/* root@nfs01:/app/code/blog # 远程传输的文件可能存在权限问题,需要重新加www权限
Authorized users only. All activities may be monitored and reported.
root@nfs01's password:
[root@web01 /app/code/blog/wp-content]# ls
index.php languages plugins themes uploads_bak
[root@web01 /app/code/blog/wp-content]#
[root@web01 /app/code/blog/wp-content]# mkdir uploads
[root@web01 /app/code/blog/wp-content]#
[root@web01 /app/code/blog/wp-content]# mount -t nfs nfs01:/app/code/blog/ /app/code/blog/wp-content/uploads/
[root@web01 /app/code/blog/wp-content]# df -h | grep uploads
nfs01:/app/code/blog 96G 4.8G 92G 5% /app/code/blog/wp-content/uploads
[root@web01 /app/code/blog/wp-content]#
2.3.3 调试与检查
可以在存储服务器上看到图片信息
[root@nfs01 ~]# tree -F /app/code/blog/
/app/code/blog/
└── 2024/
└── 10/
├── 壁纸-1-150x150.jpg
├── 壁纸-1-300x177.jpg
├── 壁纸-150x150.jpg
├── 壁纸-1.jpg
├── 壁纸-2-150x150.jpg
├── 壁纸-2-300x177.jpg
├── 壁纸-2.jpg
├── 壁纸-300x177.jpg
├── 壁纸.jpg
├── rain-150x150.jpg
├── rain-300x288.jpg
└── rain.jpg
2 directories, 12 files
2.4 小结
- web上传目录(手动上传查找,开发).
- nfs挂载即可.
- 统一nfs匿名用户与web(ngx+php用户)
3. 网站集群接入负载均衡
3.1 规划
服务器 | 功能 | ip | 备注 |
web01 |
ngx+php部署wordpress | 10.0.0.69/172.16.1.69 | 网站,存储挂载nfs01 |
web02 |
ngx+php部署wordpress | 10.0.0.70/172.16.1.70 | 网站,存储挂载nfs01 |
nfs01 |
存储web图片资源 | 10.0.0.68/172.16.1.68 | 存储,共享目录给web |
db01 |
存储文字数据 | 10.0.0.81/172.16.1.81 | mariadb数据库 |
lb01 |
负载均衡 | 10.0.0.75/172.16.1.75 | 安装了nginx |
ans自动化(已经部署1台web,增加其他机器.扩容.)
1. 部署nginx,php
2. 添加用户www(3999)
3. 修改对应的配置文件copy/template j2
4. 启动服务
5. 目录,ngx缓存目录(/var/lib/nginx/)
6. 上传目录创建
7. 安装nfs,挂载
8. 解压代码
9. 分发wp-config.php.j2 连接数据库的文件
3.2 web02环境准备
查看代码
# 远程传输nginx yum源
[root@web01 ~]# scp /etc/yum.repos.d/nginx.repo root@web02:/etc/yum.repos.d/
# 远程传输nginx 配置文件
[root@web01 ~]# scp /etc/nginx/conf.d/* root@web02:`pwd`
# 远程传输wordpress源码
[root@web01 ~]# tar cvf blog.tar.gz /app/code/blog/
[root@web01 ~]# scp blog.tar.gz root@web02:/
# 更新hosts解析
[root@web02 ~]# cat >/etc/hosts <<EOF
> 172.16.1.75 lb01
> 172.16.1.76 lb02
> 172.16.1.69 web01
> 172.16.1.70 web02
> 172.16.1.72 web03
> 172.16.1.68 nfs01
> 172.16.1.67 backup
> 172.16.1.81 db01
> 172.16.1.71 m01
> EOF
#查看nginx yum源
[root@web02 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@web02 ~]#
# 下载nginx
[root@web02 ~]# yum install nginx -y
# 查看虚拟用户
[root@web02 ~]# id www
用户id=3999(www) 组id=3999(www) 组=3999(www)
[root@web02 ~]#
# 更改nginx用户为www
[root@web02 ~]# vim /etc/nginx/nginx.conf
[root@web02 ~]# grep ^user /etc/nginx/nginx.conf
user www;
[root@web02 ~]#
# 开机自启
[root@web02 ~]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@web02 ~]#
[root@web02 ~]# systemctl is-enabled nginx
enabled
[root@web02 ~]# systemctl restart nginx
[root@web02 ~]#
# 查看nginx进程
[root@web02 ~]# ps -ef | grep nginx
root 1795 1 0 10:55 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 1796 1795 0 10:55 ? 00:00:00 nginx: worker process
www 1797 1795 0 10:55 ? 00:00:00 nginx: worker process
root 1799 1160 0 10:55 pts/0 00:00:00 grep --color=auto nginx
[root@web02 ~]#
# 查看nginx端口
[root@web02 ~]# ss -lntup | grep nginx
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1797,fd=10),("nginx",pid=1796,fd=10),("nginx",pid=1795,fd=10))
[root@web02 ~]#
# 下载php7.2环境
[root@web02 ~]# 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
已安装:
nginx-filesystem-1:1.21.5-2.p04.ky10.noarch oniguruma-6.9.0-3.ky10.x86_64 php-7.2.34-3.p02.ky10.x86_64 php-bcmath-7.2.34-3.p02.ky10.x86_64
php-cli-7.2.34-3.p02.ky10.x86_64 php-common-7.2.34-3.p02.ky10.x86_64 php-devel-7.2.34-3.p02.ky10.x86_64 php-embedded-7.2.34-3.p02.ky10.x86_64
php-fpm-7.2.34-3.p02.ky10.x86_64 php-gd-7.2.34-3.p02.ky10.x86_64 php-intl-7.2.34-3.p02.ky10.x86_64 php-json-7.2.34-3.p02.ky10.x86_64
php-mbstring-7.2.34-3.p02.ky10.x86_64 php-mysqlnd-7.2.34-3.p02.ky10.x86_64 php-opcache-7.2.34-3.p02.ky10.x86_64 php-pdo-7.2.34-3.p02.ky10.x86_64
php-process-7.2.34-3.p02.ky10.x86_64 php-xml-7.2.34-3.p02.ky10.x86_64
完毕!
# 备份php配置文件
[root@web02 ~]# cd /etc/php-fpm.d/
[root@web02 /etc/php-fpm.d]# ls
www.conf
[root@web02 /etc/php-fpm.d]# cp www.conf.bak www.conf
# 修改php配置
[root@web02 /etc/php-fpm.d]# vim www.conf
[root@web02 /etc/php-fpm.d]# egrep ^'(user|group|listen)' www.conf
user = www
group = www
listen = 127.0.0.1:9000
listen.acl_users = apache,nginx
listen.allowed_clients = 127.0.0.1
[root@web02 /etc/php-fpm.d]#
# 开机自启
[root@web02 /etc/php-fpm.d]# systemctl enable --now php-fpm.service
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@web02 /etc/php-fpm.d]#
# 重启
[root@web02 /etc/php-fpm.d]# systemctl reload php-fpm.service
[root@web02 /etc/php-fpm.d]#
# 查看php服务进程
[root@web02 /etc/php-fpm.d]# ps -ef | grep php-fpm
root 2082 1 0 11:05 ? 00:00:00 php-fpm: master process (/etc/php-fpm.conf)
www 2091 2082 0 11:05 ? 00:00:00 php-fpm: pool www
www 2092 2082 0 11:05 ? 00:00:00 php-fpm: pool www
www 2093 2082 0 11:05 ? 00:00:00 php-fpm: pool www
www 2094 2082 0 11:05 ? 00:00:00 php-fpm: pool www
www 2095 2082 0 11:05 ? 00:00:00 php-fpm: pool www
root 2097 1160 0 11:05 pts/0 00:00:00 grep --color=auto php-fpm
# 查看php服务端口
[root@web02 /etc/php-fpm.d]# ss -lntup | grep php-fpm
tcp LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
[root@web02 /etc/php-fpm.d]#
# 查看wordpress源码包
[root@web02 ~]# cd /
[root@web02 /]# ls
bin blog.tar.gz boot dev etc home lib lib64 media mnt opt proc root run sbin server srv sys tmp usr var
# 解压源码包并查看
[root@web02 /]# tar xf blog.tar.gz
[root@web02 /]# ls
app bin blog.tar.gz boot dev etc home lib lib64 media mnt opt proc root run sbin server srv sys tmp usr var
[root@web02 /]# ll -d /app/code/blog/
drwxr-xr-x 5 www www 4096 10月 29 21:24 /app/code/blog/
[root@web02 /]#
[root@web02 /]# ll /app/code/blog/
总用量 244
-rw-r--r-- 1 www www 405 2月 6 2020 index.php
-rw-r--r-- 1 www www 19915 1月 1 2024 license.txt
-rw-r--r-- 1 www www 7409 6月 18 19:59 readme.html
-rw-r--r-- 1 www www 298 10月 28 21:50 test_db_php.php
-rw-r--r-- 1 www www 22 10月 28 21:44 test_ngx_php.php
-rw-r--r-- 1 www www 7387 2月 13 2024 wp-activate.php
drwxr-xr-x 9 www www 4096 9月 11 03:00 wp-admin
-rw-r--r-- 1 www www 351 2月 6 2020 wp-blog-header.php
-rw-r--r-- 1 www www 2323 6月 14 2023 wp-comments-post.php
-rw-r--r-- 1 www www 3215 10月 29 21:24 wp-config.php
-rw-r--r-- 1 www www 3033 3月 11 2024 wp-config-sample.php
drwxr-xr-x 7 www www 103 10月 29 21:19 wp-content
-rw-r--r-- 1 www www 5638 5月 31 2023 wp-cron.php
drwxr-xr-x 30 www www 12288 9月 11 03:00 wp-includes
-rw-r--r-- 1 www www 2502 11月 27 2022 wp-links-opml.php
-rw-r--r-- 1 www www 3937 3月 11 2024 wp-load.php
-rw-r--r-- 1 www www 51238 5月 28 19:13 wp-login.php
-rw-r--r-- 1 www www 8525 9月 16 2023 wp-mail.php
-rw-r--r-- 1 www www 28774 7月 9 23:43 wp-settings.php
-rw-r--r-- 1 www www 34385 6月 20 2023 wp-signup.php
-rw-r--r-- 1 www www 4885 6月 22 2023 wp-trackback.php
-rw-r--r-- 1 www www 3246 3月 2 2024 xmlrpc.php
[root@web02 /]#
[root@web02 /]# cd /app/code/blog/wp-content/
[root@web02 /app/code/blog/wp-content]# ls
index.php languages plugins themes uploads uploads_bak
[root@web02 /app/code/blog/wp-content]#
[root@web02 /app/code/blog/wp-content]# ll uploads
总用量 0
drwxr-xr-x 3 www www 16 10月 29 16:12 2024
[root@web02 /app/code/blog/wp-content]# tree -F uploads
uploads
└── 2024/
└── 10/
├── 壁纸-1-150x150.jpg
├── 壁纸-1-300x177.jpg
├── 壁纸-150x150.jpg
├── 壁纸-1.jpg
├── 壁纸-2-150x150.jpg
├── 壁纸-2-300x177.jpg
├── 壁纸-2.jpg
├── 壁纸-300x177.jpg
├── 壁纸.jpg
├── rain-150x150.jpg
├── rain-300x288.jpg
└── rain.jpg
2 directories, 12 files
# 查看挂载情况
[root@web02 /app/code/blog/wp-content]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 963M 0 963M 0% /dev
tmpfs 979M 0 979M 0% /dev/shm
tmpfs 979M 8.9M 970M 1% /run
tmpfs 979M 0 979M 0% /sys/fs/cgroup
/dev/mapper/klas-root 96G 4.3G 92G 5% /
tmpfs 979M 0 979M 0% /tmp
/dev/sda1 2.0G 176M 1.9G 9% /boot
tmpfs 196M 0 196M 0% /run/user/0
# 删除uploads备份
[root@web02 /app/code/blog/wp-content]# \rm -rf uploads_bak/*
# 备份当前uploads数据(wordpress上传图片位置)
[root@web02 /app/code/blog/wp-content]# cp -rp uploads/* uploads_bak/
[root@web02 /app/code/blog/wp-content]#
# 删除当前uploads数据
[root@web02 /app/code/blog/wp-content]# \rm -rf uploads/*
[root@web02 /app/code/blog/wp-content]# ll -d uploads
drwxr-xr-x 2 www www 6 10月 30 11:16 uploads
[root@web02 /app/code/blog/wp-content]#
# 挂载/app/code/blog/wp-content/uploads/
[root@web02 /app/code/blog/wp-content]# mount -t nfs nfs01:/app/code/blog /app/code/blog/wp-content/uploads/
[root@web02 /app/code/blog/wp-content]#
[root@web02 /app/code/blog/wp-content]# ll uploads
总用量 0
drwxr-xr-x 3 www www 16 10月 29 16:12 2024
# 查看挂载后的数据
[root@web02 /app/code/blog/wp-content]# tree -F uploads
uploads
└── 2024/
└── 10/
├── 壁纸-1-150x150.jpg
├── 壁纸-1-300x177.jpg
├── 壁纸-150x150.jpg
├── 壁纸-1.jpg
├── 壁纸-2-150x150.jpg
├── 壁纸-2-300x177.jpg
├── 壁纸-2.jpg
├── 壁纸-300x177.jpg
├── 壁纸.jpg
├── rain-150x150.jpg
├── rain-300x288.jpg
└── rain.jpg
2 directories, 12 files
3.3 负载均衡安装、配置
查看代码
# 添加www用户
[root@lb01 ~]# id www
id: “www”:无此用户
[root@lb01 ~]#
[root@lb01 ~]#
[root@lb01 ~]# groupadd -g 3999 www
[root@lb01 ~]# useradd -u 3999 -g www -s /sbin/nologin -M www
[root@lb01 ~]# id www
用户id=3999(www) 组id=3999(www) 组=3999(www)
[root@lb01 ~]#
# 更新hosts解析
[root@lb01 ~]# cat >/etc/hosts <<EOF
> 172.16.1.75 lb01
> 172.16.1.76 lb02
> 172.16.1.69 web01
> 172.16.1.70 web02
> 172.16.1.72 web03
> 172.16.1.68 nfs01
> 172.16.1.67 backup
> 172.16.1.81 db01
> 172.16.1.71 m01
> EOF
[root@lb01 ~]#
# 查看nginx配置文件
[root@lb01 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@lb01 ~]#
# 下载nginx
[root@lb01 ~]# yum install -y nginx
已安装:
compat-openssl10-1:1.0.2o-8.ky10.x86_64 nginx-1:1.26.1-2.el7.ngx.x86_64
完毕!
[root@lb01 ~]#
# 修改用户
[root@lb01 ~]# vim /etc/nginx/nginx.conf
[root@lb01 ~]#
[root@lb01 ~]# grep ^user /etc/nginx/nginx.conf
user www;
[root@lb01 ~]#
[root@lb01 ~]# ps -ef | grep nginx
root 55333 1374 0 12:48 pts/0 00:00:00 grep --color=auto nginx
[root@lb01 ~]#
[root@lb01 ~]# systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@lb01 ~]#
[root@lb01 ~]# systemctl restart nginx
[root@lb01 ~]#
[root@lb01 ~]# ps -ef | grep nginx
root 55364 1 0 12:48 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 55365 55364 0 12:48 ? 00:00:00 nginx: worker process
www 55366 55364 0 12:48 ? 00:00:00 nginx: worker process
root 55368 1374 0 12:48 pts/0 00:00:00 grep --color=auto nginx
[root@lb01 ~]#
[root@lb01 ~]# ss -lntup | grep nginx
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=55366,fd=11),("nginx",pid=55365,fd=11),("nginx",pid=55364,fd=11))
[root@lb01 ~]#
# 书写配置文件
[root@lb01 ~]# vim /etc/nginx/conf.d/lb_blog.conf
[root@lb01 ~]#
[root@lb01 ~]# systemctl reload nginx.service
[root@lb01 ~]#
[root@lb01 ~]# cat /etc/nginx/conf.d/lb_blog.conf
upstream blog_groups {
server 10.0.0.69:80;
server 10.0.0.70:80;
}
server{
listen 80;
server_name blog.web01.cn; # web01上的域名
error_log /var/log/nginx/lb_blog_error.log notice;
access_log /var/log/nginx/lb_blog_access.log main;
location / {
proxy_pass http://blog_groups;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
}
}
[root@lb01 ~]# systemctl restart nginx.service
[root@lb01 ~]#
# 域名解析到当前主机
10.0.0.75 blog.web01.cn
3.4 调试
http://blog.web01.cn/wp-admin/edit.php
3.5 日志检查或抓包查看
http and ip.dst ==10.0.0.69
http and (ip.dst ==10.0.0.69 or ip.dst ==10.0.0.70
通过抓包证明web01和web02服务器接入负载均衡成功
标签:web,负载,www,blog,nginx,集群,wp,php,root From: https://www.cnblogs.com/daofaziran/p/18514584