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 ```

相关推荐
一只鹿鹿鹿3 小时前
信息安全等级保护安全建设防护解决方案(总体资料)
运维·开发语言·数据库·面试·职场和发展
房产中介行业研习社3 小时前
2026年3月哪些房源管理系统功能全
大数据·运维·人工智能
wenlonglanying3 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
biubiubiu07064 小时前
Linux / Ubuntu systemd 服务使用说明
linux·运维·ubuntu
MaximusCoder4 小时前
等保测评命令——Anolis Linux
linux·运维·服务器·网络·经验分享·安全·php
田里的水稻4 小时前
ubuntu22.04_构建openclaw开发框架
运维·人工智能·python
相思难忘成疾5 小时前
《RHEL9虚拟机部署及SSH远程登录实践手册》
linux·运维·ssh·虚拟机
cg_ssh5 小时前
Vue3中样式变量的使用
linux·运维·服务器
炸炸鱼.5 小时前
Nginx 代理与缓存实战:正向、反向及网络层级详解
网络·nginx·缓存
TDengine (老段)5 小时前
TDengine IDMP 运维指南 —— 部署架构
大数据·运维·数据库·架构·时序数据库·tdengine·涛思数据