LAMP架构实现网络共享存储

本文详细描述了一种基于LAMP架构(Linux、Apache、MySQL和PHP)的网络存储解决方案,通过NFS和MySQL数据库支持WordPress网站的部署,实现负载均衡和内容共享,提高资源利用率和可用性。
摘要由CSDN通过智能技术生成

LAMP架构实现网络共享存储

架构设计

架构图:

image-20240411113351174

实现逻辑:

该架构是一个基于Linux的分布式WordPress网站部署,结合了NFS和MySQL数据库,支持负载均衡和内容共享。

该分布式网络应用架构,其中包含四台服务器,分别承担不同的角色以支持WordPress网站的运行和管理。该架构支持冗余和资源共享,优化了资源利用率和可用性。

  1. 数据库服务器(IP地址:10.0.0.131):
    • 一台服务器专门配置为MySQL数据库服务器,存储WordPress网站的所有数据,包括文章内容、用户信息和网站设置等。
  2. 网络文件系统(NFS)服务器(IP地址:10.0.0.137):
    • NFS服务器配置了共享目录/data/wordpress/wp-content/uploads,该目录存储WordPress网站的上传内容,如媒体文件和用户上传的内容。
  3. 两台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。这样,无论哪台服务器处理用户请求,都能保证用户访问到相同的上传内容。
  4. 客户端访问和域名解析:
    • 客户端计算机(如代表用户访问网站的个人电脑)通过设置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
image-20240411141723430

ages-1307361841.cos.ap-beijing.myqcloud.com/img/image-20240411141723430.png" alt=“image-20240411141723430” style=“zoom: 50%;” />

image-20240411141821363

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XingYuyu_Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值