keepalived实现haproxy高可用

一.keepalived实现haproxy高可用

环境说明

系统信息 主机名 IP
centos8 master 192.168.29.140
centos8 backup 192.168.29.141
centos8 RS1 192.168.29.137
centos8 RS2 192.168.29.138

在主备服务器上安装keepalived,过程略

在主备服务器上分别搭建Haproxy,使用Haproxy搭建http负载均衡

yum -y install haproxy

[root@master ~]# vim /etc/haproxy/haproxy.cfg 
global
    daemon
    maxconn 256
 
defaults
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms
 
frontend http-in
    bind *:80
    default_backend servers
 
backend servers
    server web01 192.168.29.137:80
    server web02 192.168.29.138:80
    
[root@master ~]# systemctl restart haproxy.service

[root@backup ~]# vim /etc/haproxy/haproxy.cfg
global
    daemon
    maxconn 256
 
defaults
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms
 
frontend http-in
    bind *:80
    default_backend servers
 
backend servers
    server web01 192.168.29.137:80
    server web02 192.168.29.138:80

RS1、RS2都关闭防火墙和selinux
//RS1和RS2部署httpd

[root@RS1 ~]# yum -y install httpd
[root@RS1 ~]# echo RS1 > /var/www/html/index.html
[root@RS1 ~]# systemctl restart httpd
[root@RS1 ~]# systemctl enable httpd
 
[root@RS2 ~]# yum -y install httpd
[root@RS2 ~]# echo RS2 > /var/www/html/index.html
[root@RS2 ~]# systemctl restart httpd
[root@RS2 ~]# systemctl enable httpd

[root@master ~]# curl http://192.168.29.250
RS2
[root@master ~]# curl http://192.168.29.250
RS1

[root@master ~]# systemctl stop keepalived.service



[root@backup ~]# ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:b9:bd:f9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.29.141/24 brd 192.168.29.255 scope global dynamic noprefixroute ens33
       valid_lft 1163sec preferred_lft 1163sec
    inet 192.168.29.250/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::9a33:ce06:9305:f665/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@backup ~]# curl http://192.168.29.250
RS2
[root@backup ~]# curl http://192.168.29.250
RS1

二.正向代理

正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。

正向代理可以但不限于为局域网内客户端做代理,它扮演的角色类似于NAT。

代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口)

作用:

    1. 替代访问
    1. 加速访问
    1. Cache作用
      Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。
    1. 客户端访问授权
      比如在一些机构内部不能随意访问外网,这个时候就可以用正向代理服务器,为不同的用户分配固定 IP 或者 ID 身份识别,客户端通过设置代理服务器访问网络时,代理服务器会检查网络请求的客户端来源,非允许的客户端请求数据包会被直接丢弃。
    1. 隐藏访问者的行踪
      显然,如果我们通过一个代理服务器去访问某个网站资源,网站服务器只能看到代理服务器在发请求,并不知道其背后真正的请求者,这就可以在一定程度上起到隐匿行踪的作用。

三.反向代理

反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。

客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。

作用:

  • 保护和隐藏资源服务器
  • 负载均衡,CDN 技术的就是利用了反向代理技术

四.透明代理

透明代理(transparent proxy),透明代理其实也叫做内网代理(inline proxy)、拦截代理(intercepting proxy)以及强制代理(force proxy)。透明代理和正向代理的行为很相似,但细节上有所不同。透明代理将拦截客户端发送的请求,拦截后自己代为访问服务端,获取响应结果后再由透明代理交给客户端。一般公司内的上网行为管理软件就是透明代理。

​​和正向代理的功能完全一致(客户端不需要设置代理服务器的IP和代理端口,对用户是透明的)

例如,客户端要访问www.baidu.com,如果是正向代理的方式,客户端会指明它要交给正向代理服务,就像路由中说要交给网关一样。如果是透明代理的方式,则是发送出去,然后被透明代理拦截,客户端以为请求的这个过程是自己完成的,并不知道是透明代理完成的。

posted @ 2022-10-10 00:37  溜溜威  阅读(85)  评论(0编辑  收藏  举报