HAproxy,nginx实现七层负载均衡

环境准备:

192.168.88.25 (client)

192.168.88.26 (HAproxy)

192.168.88.27 (web1)

192.168.88.28 (web2)

192.168.88.29 (php1)

192.168.88.30 (php2)

关闭firewalld,selinux。配置yum源,扩展源epel-release

实验1

一、web1,web2

1、下载httpd服务

复制代码
yum install httpd -y

2、开启httpd服务并且设置开启自启

复制代码
systemctl start httpd

systemctl enable httpd

二、haproxy主机

1、安装haproxy(192.168.88.26)

复制代码
 yum install haproxy -y

2、配置HAproxy

复制代码
vim /etc/haproxy/haproxy.cfg 

global
	log 127.0.0.1 local3 info
	maxconn 4096
        uid nobody
#       uid 99
        gid nobody
#       gid 99
	daemon
	nbproc 1
	pidfile /run/haproxy.pid
defaults
	log		   global
	mode	   http
	maxconn 2048
	retries 	3
	option	redispatch
	contimeout	5000
	clitimeout	    50000
	srvtimeout	    50000
#timeout connect 5000
#timeout client 50000
#timeout server 50000
    option abortonclose

    stats uri /admin?stats
    stats realm Private lands
    stats auth admin:password
    stats hide-version

frontend http-in
	bind 0.0.0.0:80
	mode http
	log global
	option httplog
	option httpclose
     acl html url_reg  -i  \.html$
     use_backend html-server if  html
     default_backend html-server

backend html-server
	mode http
	balance roundrobin
	option httpchk GET /index.html
	cookie SERVERID insert indirect nocache
	server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
	server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

3、域名解析

复制代码
vim /etc/hosts

4、开启HAproxy服务

复制代码
systemctl start haproxy.service

三、客服端(client)

复制代码
yum install -y elinks

2、域名解析

复制代码
vim /etc/hosts

3、进行访问测试

实验2

一、192.168.88.29(php1),192.168.88.30(php2)

1、安装httpd,php

复制代码
yum install httpd php -y

2、修改php服务默认的网页,方便测试观察

192.168.88.29(php1)

复制代码
echo php1 > /var/www/html/index.php

192.168.88.30(php2)

复制代码
echo php2 > /var/www/html/index.php

192.168.88.29(php1),192.168.88.30(php2)开启httpd服务,并且设置开启自启

复制代码
systemctl start httpd.service

systemctl enable httpd.service

二、192.168.88.26(haproxy)

1、域名解释php1,php2

复制代码
vim /etc/hosts

2、修改配置文件192.168.88.26(HAproxy)

复制代码
vim /etc/haproxy/haproxy.cfg

global
        log 127.0.0.1 local3 info
        maxconn 4096
        uid nobody
#       uid 99
        gid nobody
#       gid 99
        daemon
        nbproc 1
        pidfile /run/haproxy.pid
defaults
        log                global
        mode       http
        maxconn 2048
        retries         3
        option  redispatch
        contimeout      5000
        clitimeout          50000
        srvtimeout          50000
#timeout connect 5000
#timeout client 50000
#timeout server 50000
    option abortonclose

    stats uri /admin?stats
    stats realm Private lands
    stats auth admin:password
    stats hide-version

frontend http-in
        bind 0.0.0.0:80
        mode http
        log global
        option httplog
        option httpclose
     acl html url_reg  -i  \.html$
     use_backend html-server if  html
     acl php url_reg  -i  \.php$
     use_backend php-server if  php
     default_backend html-server

backend html-server
        mode http
        balance roundrobin
        option httpchk GET /index.html
        cookie SERVERID insert indirect nocache
        server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
        server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
backend php-server
        mode http
        balance roundrobin
        option httpchk GET /index.php
        cookie SERVERID insert indirect nocache
        server php-A php1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
        server php-B php2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

3、重启服务haproxy

复制代码
systemctl restart haproxy.service

4、192.168.88.25(client)访问192.168.88.26(haproxy)进行测试

三、nginx负载均衡

1、192.168.88.26(haproxy),把haproxy服务删除,替换成nginx进行负载均衡

复制代码
yum remove -y haproxy

2、安装nginx服务

复制代码
yum install -y nginx

3、编辑nginx服务配置文件

复制代码
vim  /etc/nginx/nginx.conf

#http下添加
    upstream html {
        server web1:80;
        server web2:80;
        }
    upstream php {
        server php1:80;
        server php2:80;
        }
#server下添加
        location / {
         proxy_pass http://html;
        }
        location ~ \.php$ {
         proxy_pass http://php;
        }

4、192.168.88.25(client)访问192.168.88.26(nginx)进行测试

相关推荐
zzzzzz31010 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode10 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化