当前位置:   article > 正文

Haproxy服务的配置详解_haproxy monitor-uri

haproxy monitor-uri

1.Haproxy介绍:

(1)HAproxy的简单介绍:

1.HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件;适用于负载大的web站点,这些站点通常又需要会话保持或七层处理。它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上
2.HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接;事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。
3.HAProxy 支持连接拒绝 : 因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害,这也是其他负载均衡没有的优点
4.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器.

(2)HAproxy配置文件详解

配置文件主要分为5部分:

global:全局变量的参数,属于进程配置,通常与操作有关
defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件
frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器
Listen :frontend和backend的组合体

2.Haproxy负载均衡的配置

实验环境
Haproxy服务器 172.25.33.1(server1)
后端服务器:172.25.33.2(server2)
172.25.33.3(server3)

(1)下载软件

yum install haproxy -y

#查看安装包 rpm -qa haproxy
#查看安装目录 rpm -ql haproxy
#会生成haproxy用户
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述
(2)修改配置文件

vim /etc/haproxy/haproxy.cfg
systemctl start haproxy
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
(3)后端服务器的操作:

server2和server3下载httpd
并添加默认发布页面
yum install httpd
vim /var/www/html/index.html
systemctl restart httpd
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述
(4)测试:curl 172.25.33.1,观察能否实现负载均衡

curl 172.25.33.1
  • 1

在这里插入图片描述

3.Haproxy配置日志存放位置

(1)修改/rsyslog日志文件

vim /etc/rsyslog.conf

15 $ModLoad imudp
16 $UDPServerRun 514
75 local2.*                       /var/log/haproxy.log

systemctl restart rsyslog.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在这里插入图片描述
(2)测试,观察日志存储位置:

使用其他主机访问 curl 172.25.33.1

此时,可以在172.25.33.1的主机上查看:

vim /var/log/haproxy.log
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

4.添加服务器监控页面

(1)修改haproxy配置文件,并重启

vim /etc/haproxy/haproxy.cfg

 stats uri           /admin/stats     #打开监控页面
 monitor-uri         /monitoruri      #显示返回的状态码

systemctl restart haproxy.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
(2)测试:

浏览器查看 172.25.33.1/admin/stats   后端服务器监控页面。当一个服务器挂掉以后,该行会变红
172.25.33.1/monitoruri   查看访问页面的状态码
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
(3)给该访问页面添加管理用户,并设置刷新页面时间5秒:修改配置文件并重启

vim /etc/haproxy/haproxy.cfg

 61         stats auth  admin:westos
 62         stats refresh 5s

systemctl restart haproxy.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
(4)测试用户管理:浏览器访问172.25.33.1/admin/stats 会出现管理用户登陆页面,并且5秒刷新一次
在这里插入图片描述
在这里插入图片描述

5. 设置拒绝连接设置

(1)修改配置文件,并重启:

vim /etc/haproxy/haproxy.cfg

frontend  main 
    bind *:80
        acl blcaklist src 172.25.33.250
        http-request deny if blacklist
        #errorloc 403
    default_backend webserver

systemctl restart haproxy.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述
(2)直接浏览器刷新以后 为403forbidden
在这里插入图片描述
(3)现在设置,当访问拒绝以后,转到其他地方
vim /etc/haproxy/haproxy.cfg

frontend  main 
    bind *:80
     acl blacklist src 172.25.33.250
     http-request deny if blacklist
     errorloc 403 http://172.25.33.1:8080/index.html  会转到本机的8080端口
     default_backend webserver
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
本机下载httpd

 yum install httpd
 vim /var/www/html/index.html   
waiting
  • 1
  • 2
  • 3

vim /etc/httpd/conf/httpd.conf


修改端口号 因为haproxy使用了80,所以改httpd为8080

Listen 8080
  • 1
  • 2
  • 3
  • 4

重启并测试:

systemctl restart httpd

浏览器访问172.25.33.1   会看到waiting
  • 1
  • 2
  • 3

在这里插入图片描述

6.Haproxy的动静分离

(1)修改配置文件,并重启

在server1上:
frontend  main  
    bind *:80 


    use_backend dynamic if { path_end .php } 
 
    default_backend static 

backend dynamic 
    balance     roundrobin 
    server      web1 172.25.33.2:80 check 
 
backend static 
    balance     roundrobin 
    server      web2 172.25.33.3:80 check


systemctl restart haproxy.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在这里插入图片描述
(2)server2和server3的操作:

下载php 并写入默认发布页面
server2:
<?php
phpinfo()
?>

server3:
server3

因为新加了php插件,需要重新加载httpd
systemctl restart httpd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
在这里插入图片描述
(3)测试:

浏览器访问分别访问:

172.25.33.1/index.php
172.25.33.1
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在这里插入图片描述

6.Haproxy的读写分离

(1)server1中修改配置文件,并注释掉动静分离:

acl read method HEAD
acl read method GET
acl write method POST
acl write method PUT

use_backend dynamic if write

use_backend static if read

重启haproxy httpd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

(2)现在有两个用来测试动静分离的页面,放到server2和server3的/var/www/html目录下

[root@server2 html]# ls
index.html  index.php  upload_file.php upload
[root@server3 html]# ls
index.html  index.php  upload_file.php upload
[root@server3 html]# 


修改上传文件大小
[root@server2 html]# vim upload_file.php
修改第五行为2000000

scp -r index.php upload upload_file.php server3:/var/www/html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

修改服务器名称:
[root@server2 html]#vim index.php
修改第五行为server2


同样在server3中修改vim index.php
修改第五行为server3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在这里插入图片描述
(3)测试:访问http://172.25.33.1/index.php 读操作一直为server3,点击上传图片 ,在server2 /var/www/html/upload中会有图片存在

在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/303148?site
推荐阅读
相关标签
  

闽ICP备14008679号