免费代理网址(开源免费代理软件Haproxy部署配置实现Web业务访问负载均衡)

Haproxy是一个代理软件,提供高可用性、负载平衡和基于TCP(第4层)和HTTP(第7层)的应用程序。它支持虚拟主机。这是一个免费,快速和可靠的解决方案。HAProxy特别适合那些负载较重的网站,通常需要会话保持或七层处理。Haproxy运行在今天的硬件上,完全可以支持数万个并发连接。并且它的运行模式可以轻松安全地集成到您当前的架构中,同时可以保护您的web服务器不暴露在网络中。HAProxy官网:https://www.haproxy.org/



负载平衡的类型介绍

(1)无负载均衡:用户直接连接到yourdomain.com网站的Web服务器,没有负载均衡。如果您的单个Web服务器出现故障,用户将无法再访问该网站。此外,如果大量用户同时访问网站,web服务器可能会遇到性能瓶颈,导致网站访问缓慢甚至无法连接。



(2)四层负载均衡:这种方式的负载均衡会根据IP和端口转发用户流量。例如,如果用户请求访问http://yourdomain.com/anything,,流量将被转发到处理yourdomain.com所有请求的后端端口80。当用户访问负载平衡器时,负载平衡器将用户的请求转发到后端服务器的Web后端组。无论选择哪个后端服务器,都会直接响应用户的请求。通常,Web后端的所有服务器应该提供相同的内容,否则用户可能会收到不一致的内容。



(3)七层负载均衡:使用第7层可以让负载均衡器根据用户请求的内容将请求转发到不同的后端服务器。这种负载平衡模式允许您在同一个域和端口下运行多个Web应用服务器。例如,如果用户请求一个yourdomain.com/blog,,它将被转发到博客后端组的后端,这是一组运行博客应用程序的服务器。其他请求被转发到Web-back组的后端,该后端可能正在运行另一个应用程序。



Haproxy具体配置操作

实验环境三台Linux主机

Haproxy:192 . 168 . 52 . 20

免费在线代理网站

Web服务器1:192.168.52.121

Web服务器2:192.168.52.122

在web服务器1和2上,配置Web服务。

Yum install httpd -y #安装http服务

echo“这是192.168.52.12x!!!"& gt/var/www/html/index.html #配置两个web文件测试显示效果。

Systemctl start httpd #启动http服务

通过浏览器输入IP访问的效果如下。



1。安装HAProxy。

yum -y安装haproxy

2。编辑HAProxy配置文件。主要配置如下:

vim /etc/haproxy/haproxy.cfg

global # global参数 log的设置127.0.0.1 local2 #全局日志配置,使用log关键字,指定使用127.0.0.1上syslog服务中的local0日志设备, 记录带有信息级别的日志 chroot /var/lib/haproxy #更改当前工作目录 PID file/var/run/ha proxy . PID #当前进程id文件 maxconn 4000 #最大连接数 user ha proxy # user[/]group ha proxy #属于组 daemon # runs ha proxy stats socket/var/lib/ha proxy/stats defaults #配置默认 而health只会返回OK log global # Apply global log configuration 选项http log # Enable logging http requests,默认haproxy logging不记录http request logs 选项dontlognull #启用此项,日志中不会记录空连接。 所谓空连接是指当上游负载均衡器或监控系统检测到服务是否存活或可用时, 需要定期连接或获取固定组件或页面,或者检测扫描端口是否在监听或打开,其他动作称为空连接;根据官方文件,如果该服务的上游 没有其他负载均衡器,建议不要使用该参数。因为在互联网上的恶意扫描或者其他动作是不会被记录的 选项http-server-close #每次请求后主动关闭http通道 选项forward for except 127.0.0.0/8 #如果服务器上的应用程序想要记录发起请求的客户端的IP地址,那么需要在HAProxy上配置这个选项 ,这样HAProxy会将客户端的IP信息发送到服务器并添加& # 34;x-Forwarded-For & # 34;段落。启用X-Forwarded-For,在requests的头 中插入客户端IP并发送给后端服务器,这样后端服务器就可以得到客户端的真实IP。[/h option redispatch #使用cookie时,haproxy会将其请求的后端服务器的serverID插入cookie中,以保证会话的会话持久性;此时,如果后端服务器宕机 ,但是客户端的cookie不会被刷新,如果设置了该参数,客户端的请求会被强制定向到另一个后端服务器,以保证正常服务。 retries 3 #定义重新连接到后端服务器失败的次数。如果连接失败的次数超过这个值, 对应的后端服务器将被标记为不可用 time out HTTP-request 10s # HTTP请求超时 超时队列1m #队列中某个请求的超时 超时连接10s #连接超时 超时客户端1m #客户端超时 超时服务器1m #服务器超时 超时http-keep-alive 10s #设置http-keep-alive的超时 超时检查10s #检测超时 Maxconn 3000 # 监听地址是80 ACL URL _ static path _ beg-I/static/images/JavaScript/stylesheets ACL ull _ static path _ end-I . jpg . gif . png . CSS . js use _ back end static furl _ static default _ back end my _ web server #定义了一个名为my_app的前端部分。 这里对的请求被转发到后端 backend static #使用静态动态分离(如果url_path匹配. jpg.gif.png.css.js的静态文件将访问后端) balance roundrobin #负载均衡算法(# fence round robin polling,Balance source持有会话值,支持static-rr,leastconn,first,uri等参数。) Server Static 127 . 0 . 0 . 1:80 Check #静态文件部署在本机上(也可以部署在其他机器或squid缓存服务器上) 后端my_webserver #定义了一个名为my_webserver #的文件。PS:这里my_webserver只是一个 自定义名称。但需要与frontend balance round robin #负载均衡算法 Server web 1 192 . 168 . 52 . 121:80检查inter 2000 fall 3 Server web 2 192 . 168 . 52 . 122:80检查inter 2000 Fall3 #定义的多个后端,检查健康端口80,心跳频率2000启动Haproxy。[/s2/]

系统启动代理

Haproxy启动成功后,最后在其他客户端电脑上访问http://192.168.52.20/,就可以看到结果了。外部客户端的请求平均分布到两个Web服务器上,出现不同的接口。同时,当一台后端Web服务器出现故障时,也能顺利访问网页,保证高可用性!



您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友