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和代理端口)
作用:
-
- 替代访问
-
- 加速访问
-
- Cache作用
Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。
- Cache作用
-
- 客户端访问授权
比如在一些机构内部不能随意访问外网,这个时候就可以用正向代理服务器,为不同的用户分配固定 IP 或者 ID 身份识别,客户端通过设置代理服务器访问网络时,代理服务器会检查网络请求的客户端来源,非允许的客户端请求数据包会被直接丢弃。
- 客户端访问授权
-
- 隐藏访问者的行踪
显然,如果我们通过一个代理服务器去访问某个网站资源,网站服务器只能看到代理服务器在发请求,并不知道其背后真正的请求者,这就可以在一定程度上起到隐匿行踪的作用。
- 隐藏访问者的行踪
三.反向代理
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。
客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。
作用:
- 保护和隐藏资源服务器
- 负载均衡,CDN 技术的就是利用了反向代理技术
四.透明代理
透明代理(transparent proxy),透明代理其实也叫做内网代理(inline proxy)、拦截代理(intercepting proxy)以及强制代理(force proxy)。透明代理和正向代理的行为很相似,但细节上有所不同。透明代理将拦截客户端发送的请求,拦截后自己代为访问服务端,获取响应结果后再由透明代理交给客户端。一般公司内的上网行为管理软件就是透明代理。
和正向代理的功能完全一致(客户端不需要设置代理服务器的IP和代理端口,对用户是透明的)
例如,客户端要访问www.baidu.com,如果是正向代理的方式,客户端会指明它要交给正向代理服务,就像路由中说要交给网关一样。如果是透明代理的方式,则是发送出去,然后被透明代理拦截,客户端以为请求的这个过程是自己完成的,并不知道是透明代理完成的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界