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
相关推荐
fengkai45451 小时前
十二、Redis -2
运维·数据库·redis·容器
哎呦,帅小伙哦1 小时前
进程监控工具——htop
linux·运维·服务器
深圳恒讯2 小时前
海外服务器延迟高怎么解决?从线路到TCP协议的6层排查清单
运维·服务器·tcp/ip
北龙云海2 小时前
AI驱动数据库运维变革:北龙云海智能巡检平台实践与展望
运维·数据库·人工智能
AI职业加油站2 小时前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展
Lsetea4 小时前
curl报58 unable to set private key file:客户端证书与私钥加载排查
运维·https·ssl证书·openssl·curl
天远Date Lab4 小时前
零信任架构实战:基于天远学籍核验三要素构建自动化竞赛资格审查网关
运维·人工智能·架构·自动化
Lsetea4 小时前
OpenSSL报certificate is not yet valid:error 9与notBefore时间排查
linux·运维·https·ssl证书·openssl
魔法阵维护师4 小时前
Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理
linux·运维·服务器
飞飞传输4 小时前
业务系统文件安全检测怎么做?生物医药企业选型与建设指南
大数据·运维·安全