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
相关推荐
·薯条大王2 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
小小、码农5 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b6 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨7 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK8 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
修罗王8 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
迪康Defender9 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他
酷可达拉斯9 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
张龙68711 小时前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker
frank006007111 小时前
Dell 17G 服务器阵列卡(PERC)纵向与横向详细对比
运维·服务器