架构设计
架构图:
实现逻辑:
该架构是一个基于Linux的分布式WordPress网站部署,结合了NFS和MySQL数据库,支持负载均衡和内容共享。
该分布式网络应用架构,其中包含四台服务器,分别承担不同的角色以支持WordPress网站的运行和管理。该架构支持冗余和资源共享,优化了资源利用率和可用性。
- 数据库服务器(IP地址:10.0.0.131):
- 一台服务器专门配置为MySQL数据库服务器,存储WordPress网站的所有数据,包括文章内容、用户信息和网站设置等。
- 网络文件系统(NFS)服务器(IP地址:10.0.0.137):
- NFS服务器配置了共享目录
/data/wordpress/wp-content/uploads
,该目录存储WordPress网站的上传内容,如媒体文件和用户上传的内容。- 两台Web服务器(IP地址:10.0.0.107和10.0.0.134):
- 每台服务器都运行着Linux, Apache(HTTPD)和PHP-FPM,以提供网页内容和执行WordPress PHP脚本。
- 这两台Web服务器配置为通过NFS挂载共享的
wp-content/uploads
目录到本地路径/var/www/html/wp-content/uploads
。这样,无论哪台服务器处理用户请求,都能保证用户访问到相同的上传内容。- 客户端访问和域名解析:
- 客户端计算机(如代表用户访问网站的个人电脑)通过设置hosts文件,将域名(例如
blog.yuyu.org
)解析到两台Web服务器的IP地址。这允许您测试负载均衡和冗余策略,确保两台Web服务器都能独立响应客户端的请求。
安装NFS
[root@nfs ~]# yum install nfs-utils
Last metadata expiration check: 3:11:19 ago on Thu 11 Apr 2024 09:54:09 AM CST.
Package nfs-utils-1:2.5.4-20.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@nfs ~]# systemctl enable --now nfs-server
[root@nfs ~]# mkdir -pv /data/wordpress/wp-content/uploads
[root@nfs ~]# cat /etc/exports
/data/wordpress/wp-content/uploads/ 10.0.0.0/24(rw)
[root@nfs ~]# exportfs -r
[root@nfs ~]# exportfs -v
/data/wordpress/wp-content/uploads
10.0.0.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
# 因为lap机器上的apache用户的id就是48,如果这里不设置成48的话,客户端挂载以后是写不进去的
[root@nfs ~]# chown -R 48:48 /data/wordpress/wp-content/
安装MySQL 8.0
[root@mysql ~]# yum install mysql-server
Last metadata expiration check: 4:02:41 ago on Thu 11 Apr 2024 09:53:25 AM CST.
Package mysql-server-8.0.36-1.el9_3.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@mysql ~]# systemctl enable --now mysqld
[root@mysql ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 335
Server version: 8.0.36 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database wordpress;
mysql> create user wordpress@'10.0.0.%' identified by '123456';
mysql> grant all on wordpress.* to wordpress@'10.0.0.%';
安装LAP
# 本次两台服务器使用的Rocky Linux 9.0和Rocky Linux 9.2
# 安装httpd、php-fpm、php-mysqlnd、nfs-utils
[root@Rocky9 themes]#dnf -y install httpd php-fpm php-mysqlnd nfs-utils
Last metadata expiration check: 3:37:21 ago on Thu 11 Apr 2024 09:24:45 AM CST.
Package httpd-2.4.57-5.el9.x86_64 is already installed.
Package php-fpm-8.0.30-1.el9_2.x86_64 is already installed.
Package php-mysqlnd-8.0.30-1.el9_2.x86_64 is already installed.
Package nfs-utils-1:2.5.4-20.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@Rocky9 themes]#
#开机自启动并启动
[root@Rocky9 ~]# systemctl enable --now httpd php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@Rocky9 ~]# showmount -e 10.0.0.137
Export list for 10.0.0.137:
/data/wordpress/wp-content/uploads 10.0.0.0/24
[root@Rocky9 ~]# vi /etc/fstab
10.0.0.137:/data/wordpress/wp-content/uploads/ /var/www/html/wp-content/uploads/ nfs _netdev 0 0
[root@Rocky9 ~]# mkdir -pv /var/www/html/wp-content/uploads/
# 上传wordpress压缩包latest-zh_CN.zip
[root@Rocky9 ~]# unzip latest-zh_CN.zip
[root@Rocky9 ~]# ls
[root@Rocky9 ~]#ls
anaconda-ks.cfg latest-zh_CN.zip original-ks.cfg wordpress
[root@Rocky9 ~]# cp -ar wordpress/* /var/www/html
#修改所属主和组
[root@Rocky9 ~]# chown -R apache.apache /var/www/html
[root@Rocky9 ~]# mount -a
[root@Rocky9 themes]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 479376 0 479376 0% /dev/shm
tmpfs 191752 7120 184632 4% /run
/dev/sda2 104806400 1987436 102818964 2% /
/dev/sda3 52403200 398400 52004800 1% /data
/dev/sda1 9976648 146248 9302016 2% /boot
10.0.0.137:/data/wordpress/wp-content/uploads 52363264 480000 51883264 1% /var/www/html/wp-content/uploads
tmpfs 95872 0 95872 0% /run/user/0
[root@Rocky9 themes]
客户端访问
# 在windows/system32/drivers/etc/hosts配置映射关系
10.0.0.107 blog.yuyu.org
http://blog.yuyu.org
0 Comments