NFS 共享存储支撑下的 HAProxy+Nginx 集群性能验证实验

1.1 主机规划

主机名 IP地址 安装软件
haproxy 192.168.72.100/24 haproxy
nginx1 192.168.72.10/24 nginx,nfs-utils
nginx2 192.168.72.20/24 nginx,nfs-utils
nfs 192.168.72.30/24 nfs-utils

1.2 搭建nfs

1.2.1 环境准备

1、克隆服务器

2、设置主机名、ip

root@node1 \~# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.72.30/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

root@node1 \~# nmcli c up ens160

root@node1 \~# hostnamectl set-hostname nfs && bash

root@nfs \~#

3、关闭防火墙

复制代码
[root@nfs ~]# systemctl disable --now firewalld.service 
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

4、关闭selinux

复制代码
[root@nfs ~]# setenforce 0
[root@nfs ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
1.2.2 安装nfs

1、创建共享目录

复制代码
[root@nfs ~]# mkdir /share

2、创建共享文件

复制代码
[root@nfs ~]# vim /share/index.html
nfs 192.168.72.30

3、为文件设置权限

复制代码
[root@nfs ~]# chown -R nobody: /share

4、安装nfs

复制代码
[root@nfs ~]# dnf install nfs-utils -y

5、配置nfs

复制代码
[root@nfs ~]# vim /etc/exports

文件内容如下:

复制代码
/share  192.168.72.0/24(rw,sync,no_subtree_check)

验证配置

复制代码
[root@nfs ~]# exportfs -rv
exporting 192.168.72.0/24:/share

6、启动nfs

复制代码
[root@nfs ~]# systemctl start nfs-server.service

验证启动

复制代码
[root@nfs ~]# showmount -e 192.168.72.30
Export list for 192.168.72.30:
/share 192.168.72.0/24

1.3 搭建nginx2

1.3.1 环境准备

1、克隆一台虚拟机

2、设置主机名

复制代码
[root@localhost ~]# hostnamectl set-hostname nginx2 && bash

3、关闭防火墙

复制代码
[root@nginx2 ~]# systemctl disable --now firewalld.service 
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

4、关闭selinux

复制代码
[root@nginx2 ~]# setenforce 0
[root@nginx2 ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config

5、设置IP地址

复制代码
[root@nginx2 ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.72.20/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@nginx2 ~]# nmcli c up ens160
1.3.2 安装nginx

1、安装nginx

复制代码
[root@nginx2 ~]# dnf install nginx -y

2、将nginx根目录挂载到共享路径下

复制代码
# 安装工具
[root@nginx2 ~]# dnf install nfs-utils -y
# 挂载目录
[root@nginx2 ~]# mount -t nfs 192.168.72.30:/share /usr/share/nginx/html/
# 查看目录
[root@nginx2 ~]# ls /usr/share/nginx/html/
index.html
# 查看文件
[root@nginx2 ~]# cat /usr/share/nginx/html/index.html 
nfs 192.168.72.30

3、启动服务

复制代码
[root@nginx2 ~]# systemctl start nginx

4、访问测试

复制代码
[root@nginx2 ~]# curl 192.168.72.20
nfs 192.168.72.30

1.4 搭建nginx1

1.4.1 环境准备

1、克隆一台虚拟机

2、设置主机名

复制代码
[root@localhost ~]# hostnamectl set-hostname nginx1 && bash

3、关闭防火墙

复制代码
[root@nginx1 ~]# systemctl disable --now firewalld.service 
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

4、关闭selinux

复制代码
[root@nginx1 ~]# setenforce 0
[root@nginx1 ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config

5、设置IP地址

复制代码
[root@nginx1 ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.72.10/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@nginx1 ~]# nmcli c up ens160
1.4.2 安装nginx

1、安装nginx

复制代码
[root@nginx1 ~]# dnf install nginx -y

2、将nginx根目录挂载到共享路径下

复制代码
# 安装工具
[root@nginx1 ~]# dnf install nfs-utils -y
# 挂载目录
[root@nginx1 ~]# mount -t nfs 192.168.72.30:/share /usr/share/nginx/html/
# 查看目录
[root@nginx1 ~]# ls /usr/share/nginx/html/
index.html
# 查看文件
[root@nginx1 ~]# cat /usr/share/nginx/html/index.html 
nfs 192.168.72.30

3、启动服务

复制代码
[root@nginx1 ~]# systemctl start nginx

4、访问测试

复制代码
[root@nginx1 ~]# curl 192.168.72.10
nfs 192.168.72.30

1.5 搭建haproxy

1.5.1 环境准备

1、克隆一台虚拟机

2、设置主机名

复制代码
[root@localhost ~]# hostnamectl set-hostname haproxy && bash

3、关闭防火墙

复制代码
[root@haproxy ~]# systemctl disable --now firewalld.service
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

4、关闭selinux

复制代码
[root@haproxy ~]# setenforce 0
[root@haproxy ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config

5、设置IP地址

复制代码
[root@haproxy ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.72.100/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@haproxy ~]# nmcli c up ens160
1.5.2 安装haproxy

1、安装haproxy

复制代码
[root@haproxy ~]# dnf install haproxy -y

2、配置haproxy

复制代码
[root@haproxy ~]# cp -p /etc/haproxy/haproxy.cfg{,.bak}
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

文件内容如下:

复制代码
global
    log         127.0.0.1 local2
​
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
​
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats mode 600 level admin
​
    # utilize system-wide crypto-policies
    ssl-default-bind-ciphers PROFILE=SYSTEM
    ssl-default-server-ciphers PROFILE=SYSTEM
​
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
​
frontend webserver
    bind *:80
    default_backend             webcluster
​
backend webcluster
    balance     roundrobin
    server web1 192.168.72.10:80 check inter 2000 rise 2 fall 3 weight 1
    server web2 192.168.72.20:80 check inter 2000 rise 2 fall 3 weight 1

3、验证配置文件语法

复制代码
[root@haproxy ~]# haproxy -c -f /etc/haproxy/haproxy.cfg
Configuration file is valid

4、启动haproxy

复制代码
[root@haproxy ~]# systemctl start haproxy

5、访问测试

复制代码
[root@haproxy ~]# systemctl start haproxy
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
[root@haproxy ~]# curl 192.168.72.100
nfs 192.168.72.30
相关推荐
2601_962218476 小时前
万象生鲜系统区块链溯源技术帮助生鲜企业搭建食品安全数字化体系
大数据·运维·微服务·云原生·架构
智塑未来6 小时前
中小公司在线文档选型:从协作入口到安全边界
运维·安全
新时代牛马6 小时前
Linux 内核入门地图:架构、源码目录与五大子系统
linux·运维·架构
智购科技无人售货机厂家6 小时前
2026自动售货机制冷系统维护指南:从散热器清洁到压缩机换油的工程实践~YH
运维·redis·物联网·缓存·架构
剑客的茶馆7 小时前
开发者,运维怎样转行FDE?
运维·ai·开发·fde
Julien20047 小时前
控制 SELinux 文件上下文
linux·运维·服务器
众壹新能源科技7 小时前
功率预测误差考核怎么降?从气象源到上报口径的排查清单
运维·人工智能·自动化
DevLoom_8 小时前
SD卡插电脑提示:驱动器中的磁盘未被格式化?恢复数据正确处理步骤
运维·服务器·电脑
Orange_sparkle8 小时前
从 Docker 到 Doris:建立后端基础设施全景图
运维·docker·ai·容器·claude code
2601_962128269 小时前
Nginx目录结构
运维·nginx