首页 > 其他分享 >web集群项目-迁移与接入负载

web集群项目-迁移与接入负载

时间:2024-11-01 15:31:44浏览次数:1  
标签:web 负载 www blog nginx 集群 wp php root

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 访问网站并发布文章测试

http://blog.web01.cn/wp-admin

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

相关文章

  • 【免费分享】WebGIS自学宝藏教程:Mapbox入门
    ⼀、简介https://www.mapbox.com/1、Mapbox简介Mapbox是⼀个可以创建各种⾃定义地图的⽹站,如Pinterest、Evernote、Github、500px等⼤牌都使⽤Mapbox创建⾃⼰的地图,Mapbox宣称要构建世界上最漂亮的地图。已为Foursquare、Pinterest、Evernote、⾦融时报、天⽓频道、......
  • WebSocket详解:从前端到后端的全栈理解
    文章目录前言一、WebSocket简介1.1WebSocket的特点二、WebSocket的工作原理2.1握手过程2.2数据传输三、WebSocket在前端的应用四、WebSocket在后端的应用五、WebSocket的局限与解决方案结语前言随着互联网技术的发展,传统的HTTP协议在某些场景下的局限性逐渐显......
  • 如何使用WebSockets在网页应用中实现实时通信
    摘要:实现网页应用中的实时通信,1、选择合适的WebSockets库以简化实施过程;2、在服务器端与客户端建立WebSocket连接;3、设计有效的消息协议;4、确保通信安全性;5、处理网络问题和重连机制。其中选择合适的WebSockets库是基础。它能够帮助开发者快速构建实时通信功能,如Socket.IO、Web......
  • Qt5.9使用QWebEngineView加载网页速度慢 ,卡顿,原因是默认开启了代理
     Qt5.9使用QWebEngineView加载网页速度慢,卡顿,原因是默认开启了代理https://blog.csdn.net/zhanglixin999/article/details/131161944 BUG单下的留言讲明了问题发生的原因,那就是系统默认设置为自动寻找代理,而使用代理后延迟会变得非常大。(1)关闭自动代理接的pro文件内添......
  • 在K8S中,集群服务暴露失败 如何解决?
    在Kubernetes(K8S)中,集群服务暴露失败可能由多种原因引起。为了解决这个问题,可以按照以下步骤进行详细的排查和解决:1.检查服务是否存在首先,需要确认要暴露的服务是否已经存在。使用kubectlgetservices命令查看当前命名空间下的所有服务,确认目标服务是否在其中。如果服务不存在,......
  • 在K8S中,集群服务访问失败 如何解决?
    在Kubernetes(K8S)中,集群服务访问失败是一个常见的问题,可能由多种原因引起。下面是一些排查和解决问题的步骤,可以帮助你定位并解决服务访问失败的问题。1.检查服务定义首先,确保你的服务定义是正确的。检查服务的YAML文件,确认selector标签与后端Pod的标签匹配。如果服务定义有......
  • 在K8S中,外网无法访问集群提供的服务 如何解决?
    在Kubernetes(K8S)中,如果外网无法访问集群提供的服务,可以按照以下步骤进行详细的排查和解决:1.检查服务配置服务类型:确保服务的类型是NodePort或LoadBalancer,因为这两种类型允许外部访问。如果使用NodePort,检查是否所有节点的防火墙都允许访问该端口。如果使用LoadBalancer,确......
  • Stable Diffusion Web UI 1.9.4 Docker 基础镜像
    镜像的构建会需要科学上网,不会的人,最好的方式就是花钱购买境外服务器。本文使用:Windwos11+WSL(Ubuntu22.04)进行镜像构建,使用 Clash代理。读者相同环境,实现代理需要两项配置-配置一:WSL开启镜像模式-配置二:Clash开启局域网访问模式+TUN模式即可让WSL中的......
  • Web的鲜花智能推荐销售商城-附源码
    摘要现代人们对于鲜花的需求越来越高,鲜花销售市场也呈现出蓬勃的发展势头。然而,传统的鲜花销售通常面临一些问题,比如顾客往往需要花费大量的时间和精力在线下去寻找合适的鲜花,同时也难以获取到个性化的推荐服务。为了解决这些问题,智能推荐技术可以应用在鲜花销售商城中,帮助用......
  • Web 开发:自定义路由器
    在Web开发中,自定义路由器(即自定义ServeMux实例)可以带来更大的灵活性和控制。1.需要不同的路由策略默认的DefaultServeMux适合简单的URL路由需求,但在一些更复杂的场景下(例如需要动态路由、参数化路径等),自定义路由器或第三方路由库(如gorilla/mux)通常更灵活。2.多域名......