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

相关推荐
21号 114 分钟前
9.进程间通信
linux·运维·服务器
搬码临时工5 小时前
电脑同时连接内网和外网的方法,附外网连接局域网的操作设置
运维·服务器·网络
藥瓿亭5 小时前
K8S认证|CKS题库+答案| 3. 默认网络策略
运维·ubuntu·docker·云原生·容器·kubernetes·cks
Gaoithe6 小时前
ubuntu 端口复用
linux·运维·ubuntu
程序猿小D7 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
gsls2008087 小时前
ocrapi服务docker镜像使用
运维·docker·容器
文牧之8 小时前
PostgreSQL 的扩展pg_freespacemap
运维·数据库·postgresql
AWS官方合作商8 小时前
基于AWS Serverless架构:零运维构建自动化SEO内容生成系统
运维·serverless·aws
whp4049 小时前
windows server2019 不成功的部署docker经历
运维·docker·容器
IT界小黑的对象9 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器