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)进行测试

相关推荐
梁bk44 分钟前
[Nginx]反向代理和负载均衡
运维·nginx·负载均衡
(:满天星:)6 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
小陶来咯6 小时前
【仿muduo库实现并发服务器】Acceptor模块
运维·服务器
爱莉希雅&&&7 小时前
shell编程之awk命令详解
linux·服务器·git
笑稀了的野生俊7 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
cui_hao_nan7 小时前
Docker后端部署
运维·docker·容器
ZZH1120KQ7 小时前
Linux系统安全及应用
linux·运维·系统安全
小扎仙森8 小时前
关于服务器宝塔转移wordperss子比主题问题
运维·服务器
小小小糖果人8 小时前
Linux云计算基础篇(5)
linux·运维·服务器
我不是哆啦A梦8 小时前
破解风电运维“百模大战”困局,机械版ChatGPT诞生?
运维·人工智能·python·算法·chatgpt