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
相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
ping某10 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql