load balancer 之 proxy

今天一直在弄用apache来做web的负載均衡器,出现些问题如下:

当web是基于http的时候,所有的正常。但是是现在的web是基于ssl的应用就出问题了,后面几台的web server 的证书都不一样,apache 作为ssl 的反向代理的时候,只能使用一个证书!!!

apache的ssl 代理是从后面的server 到前面的client 之前又有两层ssl加密,严重的影响了效率。

想了好久,主要觉得原因还是apache的代理在iso的七层,虽然带来了好多有灵活性。但同时也带来了其他问题。就算后来用了nginx,但第二个多证书的透时问题还是存在。所以还是决定用那些可以支持4层的负载均衡(F5)的设备和软件(HAPROXY)。

由于haproxy是开源的产品,支持4层和7层的负载设置,所以是第一选择。

安装方法:

tar zxvf haproxy-1.4.13.tar.gz

make TARGET=linux26 PREFIX=/usr/local/haproxy  ##我的系统内核为2.6,所以target=linux26

make install PREFIX=/usr/local/haproxy

然后进行配置:

vi /etc/haproxy/haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        #chroot /usr/share/haproxy            #chroot的执行环境,如果不存在此路径就会报错
        chroot /usr/local/haproxy
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000
        balance  roundrobin
        #haproxy web 管理界面
        stats   enable
        stats uri   /haproxy-stats        #通过  就可以访问 
        stats auth  hxadmin:123456

# proxy status check , not in need , 例如对两部主机进行监控的实例
listen web_proxy 10.86.3.180:80
        mode http                        #使用7层模式,
        option httpchk GET /index.htm    #用于健康检测的后端页面
#  #后端的主机 IP &权衡, ser201 自己定义 
        server ser201  10.86.2.201:80 weight 3 check    
        server ser202  10.86.2.202:81 weight 3 check

#实际用来负载的设备,运行的端口及主机名       
listen  ssl-relay 10.86.3.180:443

        mode    tcp            #使用4层模式
        balance roundrobin
        server  fpg201 10.86.2.201:443 check inter 2000 fall 3
        server  ins202 10.86.2.202:443 check inter 2000 fall 3
        server  back1  10.86.2.203:443 backup                #用作备份的主机

这个文档的所有例子都可以在 /haproxy-1.xxx/examples目录下找到,包到 haproxy.init 的启到脚本。

所以只需要: #mv examples/haproxy.init /etc/init.d/haproxy

#chmod a+x /etc/init.d/haproxy

#chkcofig --add haproxy

#service haproxy start

就可以成功创建haproxy的脚本,并且入系统自启到的services中,启动haproxy 服务。

注:如果启动过程出现/usr/sbin/haporxy not found 的相关提示,只要找到当前的haproxy所在位置,cp到/usr/sbin下就可

时间: 2024-10-07 08:01:23

load balancer 之 proxy的相关文章

Neutron 理解 (7): Neutron 是如何实现负载均衡器虚拟化的 [How Netruon Implements Load Balancer Virtualization]

学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GRE/VxLAN 虚拟网络 (4)Neutron OVS OpenFlow 流表 和 L2 Population (5)Neutron DHCP Agent (6)Neutron L3 Agent (7)Neutron LBaas 1. 基础知识 1.1 负载均衡的概念 负载均衡(Load Balan

OVN实战---《The OVN Load Balancer》翻译

Overview 基于前面几篇文章的基础之上,我们接下来将要探索OVN中的load balancingz这一特性.但是在开始之前,我们先来回顾一下上一个lab中创建好的拓扑结构. The lab network The OVN logical network The OVN Load Balancer The OVN load balancer用于为OVN逻辑网络空间中的负载提供基本的负载均衡的功能.由于它的简单特性,它并不是用来替代基于应用的,专有的load balancer,后者往往提供了更

load balancer does not have available server for client: provider

Ask Question up vote6down votefavorite 4 I'm trying to use Feign client. Below is my feing client: import com.eprogrammerz.examples.domain.Movie; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotati

负载均衡server load balancer

负载均衡(Server Load Balancer,简称SLB)是对多台云服务器进行流量分发的负载均衡服务.SLB可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性. (与cdn关系,cdn用到了负载均衡,CDN 利用全局负载均衡技术将用户的访问指向离用户最近的工作正常的流媒体服务器上,由流媒体服务器直接响应用户的请求.服务器中如果没有用户要访问的内容,会根据配置自动从原服务器抓取相应的内容并提供给用户. IPTV 可利用 CDN 为用户提供 VOD 业务,通过 C

Load balancer does not have available server for client

最近在研究spring-cloud,研究zuul组件时发生下列错误: Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: zuul-server 解决办法就是在pom文件里添加 <dependency> <groupId>org.springframework.cloud</groupId> <artifact

Feign报错Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client

问题描述 使用Feign调用微服务接口报错,如下: java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: app1 at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeig

Docker : Tomcat Clustering with Load Balancer (Tomcat and Nginx)

Tomcat Clustering Series Part 5 : NginX as Load Balancer - Ramki Technical Bloghttps://www.ramkitech.com/2013/01/tomcat-clustering-series-part-5-nginx.html Docker : Tomcat Clustering with Load Balancer (Tomcat and Nginx) - Ramki Technical Bloghttps:/

Azure Load Balancer : 简介

Azure 提供的负载均衡服务叫 Load Balancer,它工作在 ISO 七层模型的第四层,通过分析 IP 层及传输层(TCP/UDP)的流量实现基于 "IP + 端口" 的负载均衡. Azure Load Balancer 的主要功能 负载均衡基于 ISO 四层的负载均衡,请参考下图(此图来自互联网): 端口转发通过创建入站 NAT 规则,可以实现端口转发,将来自前端 IP 地址的特定端口的流量转发到虚拟网络中特定后端实例的特定端口.比如我可以映射前端 IP 的 10022 端

com.netflix.client.ClientException: Load balancer does not have available server for client xxxx

版本spring boot: 2.0.1.RELEASE spring cloud: Finchley.M9 错误通过zuul调用eureka注册的服务,错误内容如下 Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client xxxxx 方案经过查询排查,两种解决方案 方案一(亲测有效) 在application.properties中添加 ribb