Articles of haproxy

HAProxy健康检查:使用httpchk并观察?

我正在使用HAProxy 1.4.18和以下后端configuration backend staging option httpchk HEAD /check.txt HTTP/1.0 http-check disable-on-404 default-server error-limit 1 on-error mark-down server staging01 xxxx:80 check observe layer7 server staging02 xxxx:80 check observe layer7 服务器在apache / passenger上运行多个应用程序。 httpchk和disable-on-404的组合允许正常关机并且很容易地从lb中移除服务器,同时仍然能够直接访问(即用于testing)。 我试图设置观察,以便在应用程序不工作时禁用服务器。 我已经打破了staging02上的应用程序configuration,所以它总是返回一个500.在第一个500之后它被正确地标记为DOWN,但是在下一个httpchk被标记为UP。 这是日志文件: Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active […]

使用Nginx或HA代理作为负载平衡器的优势

在我们的环境中,我们在不同的集群上使用Nginx和HA Proxy。 使用另一个的优点是什么? 或者,有关负载平衡基本LAMP服务器群集的最佳方法是什么?

Windows 2008 Server上的死网关检测

我们最近实现了HAProxy for stackoverflow.com。 我们决定使用TProxy来维护连接客户端的源地址,所以我们的日志和依赖于客户端IP地址的其他IIS模块不需要修改。 因此,数据包仿冒来自外部互联网IP地址,实际上它们来自本地networking上的本地192.168.xx HAProxy IP。 我们的两台networking服务器都有两个网卡 – 公共互联网上的一个具有静态IP,DNS和默认网关的可路由B类地址,以及一个configuration了默认网关的私有不可路由C类地址,指向HAProxy的专用IP。 HAProxy有两个接口 – 一个公共接口和一个私有接口,负责在接口之间透明地路由数据包,并将stream量引导至相应的Web服务器。 以太网适配器Internet: 说明。 。 。 。 。 。 。 。 。 。 。 :网卡#1 DHCP已启用。 。 。 。 。 。 。 。 。 。 。 :没有 自动configuration已启用。 。 。 。 :是的 IPv4地址。 。 。 。 。 。 。 。 。 。 。 :69.59.196.217(优选) […]

使用haproxy将几个子域指向单个后端

我正在使用haproxy来指导在单个服务器上运行的多个应用程序的路由。 对于其中一个正在使用的域,有几十个子域应该被引导到几个应用程序之一。 目前,我列出了所有这些子域在一个separte行。 我的前端configuration如下所示: frontend http-in bind *:80 acl alpha hdr(host) -i alpha.com acl beta hdr(host) -i beta.com acl gamma00 hdr(host) -i apple.gamma.com acl gamma01 hdr(host) -i banana.gamma.com acl gamma02 hdr(host) -i cherry.gamma.com acl gamma03 hdr(host) -i durian.gamma.com acl gamma04 hdr(host) -i elderberry.gamma.com acl gamma05 hdr(host) -i fig.gamma.com acl gamma06 hdr(host) -i grapefruit.gamma.com acl gamma […]

绑定到haproxy中的所有IPv4和IPv6接口

我想configurationhaproxy绑定到所有接口上的tcp以及tcp6套接字(即, tcp6 :::80和:::80 )。 我可以通过以下设置达到这个目标: listen web bind :80 v4v6 bind :::80 v6only 有没有比这更短的方式? 虽然我期望它的行为不同,但v4v6关键字使haproxy只绑定到v4套接字。

在使用haproxy检查SSL之前是否可以redirecthttps连接?

我有两个域, myexample.com和my-example.com 。 我希望任何域的所有stream量都转到https://www.my-example.com ,为此我有一个SSL证书。 我没有域myexample.com的SSL证书。 我有http ://myexample.com,http://www.myexample.com,http: //my-example.com和http://www.my-example.com全部redirect到https:// www。 my-example.com没有问题,但是当我为https://myexample.com或https://www.myexample.com设置redirect时,它在redirect之前检查他们的SSL证书,所以我总是得到一个证书错误。 有没有办法做的redirect没有SSL检查我redirect的非SSL域? 我的configuration文件的相关部分: frontend www-https bind xxx.xxx.xxx.xxx:443 ssl crt /etc/ssl/private/www.my-example.com.pem reqadd X-Forwarded-Proto:\ https redirect prefix https://www.my-example.com code 301 if { hdr(host) -i myexample.com } redirect prefix https://www.my-example.com code 301 if { hdr(host) -i www.myexample.com } default_backend www-backend

为什么没有横向扩展的软件负载均衡器平衡ssl的例子?

我有一堆关于ssl,本地会话和负载平衡的问题,这些问题似乎是相互关联的,所以我对这个问题的长度提前道歉。 我有一个使用基于文件的会话的网站。 网站的性质大部分是http,但有些章节是ssl。 目前,由于基于文件的会话,任何ssl请求都必须与之前的任何http请求相同的服务器。 由于时间的限制,我想做最简单的事情来负载平衡增加http和sslstream量。 粘性负载均衡algorithm似乎有两个选项: 基于IP 基于cookie 基于IP的解决scheme可能会工作,但哈希algorithm可能会改变服务器,当服务器宕机或添加这是当前基于文件的会话设置不可取的服务器。 我还假设用户在浏览网站时合法地更改ips在技术上是可行的。 基于cookie的algorithm似乎更好,但是当sslencryption时无法检查cookie看起来呈现出自己的问题。 我一直在search如何负载平衡ssl的例子,我似乎无法find任何明确的例子,可以做基于cookie的负载平衡,并可以通过增加另一个ssl解码器来处理增加ssl负载的设置。 我见过的大多数显式示例都有位于浏览器客户端和负载平衡器之间的ssl解码器(通常是硬件,apache_mod_ssl或nginx)。 这些例子通常看起来像这样(从http://haproxy.1wt.eu/download/1.3/doc/architecture.txt中修改): 192.168.1.1 192.168.1.11-192.168.1.14 ——- + ———– + —– + —– + —– + | | | | | + – + – + + – + – + + – + – + + – + – + + – + – […]

HAProxy,健康检查具有不同主机名的多个服务器

我需要在具有不同主机名的多个运行服务器之间进行负载平衡。 我无法在每个虚拟主机上设置相同的虚拟主机。 是否有可能只有一个侦听configuration多个服务器,并使运行状况检查应用http-send-name-header Host指令? 我正在使用HAProxy 1.5。 我想出了这个工作haproxy.cfg,你可以看到,我不得不为每个运行状况检查设置一个不同的主机名,因为运行状况检查忽略了http-send-name-header Host 。 我会更喜欢使用variables或其他方法,并保持事情更简洁。 global log 127.0.0.1 local0 notice maxconn 2000 user haproxy group haproxy defaults log global mode http option httplog option dontlognull retries 3 option redispatch timeout connect 5000 timeout client 10000 timeout server 10000 stats enable stats uri /haproxy?stats stats refresh 5s balance roundrobin option httpclose […]

针对中小stream量站点的HAProxy硬件build议

我有兴趣设置HAProxy作为一组小stream量Web应用程序的负载平衡器。 在近期(6个月左右),使用量正在增加,可能会变成中型。 主要是我们正在寻找平衡负载,因为有些客户希望自己的专用服务器,有些什么是尽可能低的成本,以适应我们似乎需要一个负载平衡器。 我查看了HAProxy主页和一些博客,但他们实际上并没有详细说明,或者是使用sun服务器的大型网站 什么样的硬件和任何人推荐在处理器,内存,存储和distrobution方面你使用或将推荐这样的应用程序? 提前致谢

在多个静态文件服务器之间均衡负载平衡的最佳方式,甚至是带宽分配?

首先,我会向你解释我的情况。 我正在运行一个相当受欢迎的网站作为一个副项目,所以我不能真的投入大量的资金。 我目前只有一个HAProxy服务器,向Apache发送正常请求,并向Lighttpd发送所有静态文件请求。 这是工作得很好,因为所有的PHP和POST请求都被Apache处理,而所有的图像被发送到更快的Lighttpd(该网站主要是图像,所以这是非常重要的)。 如果不需要build立一个服务于图片的子域名,这将是很好的,因为短的URL也是非常重要的,所以我使用HAProxy的原因。 我find了一个托pipe服务提供商,提供了我一直使用的相当便宜的无限量带宽,问题出现在我开始推出100MB网卡所能处理的带宽时,因此需要第二台服务器。 我已经对我的select进行了很多的思考,所以我会向你解释每一个。 希望你能提供一些洞察力,哪一个对我来说是最好的select,或者还有另一个我还没有想到的select。 要求: 甚至带宽分配也是必须的。 我有一个非常强大的服务器,所以扩大是不是一个选项。 我需要扩展以获得更多的带宽。 短url。 我真的不想设置像img.example.com这样的子域来提供我的图片。 example.com/image.jpg是如何现在,我真的很喜欢它留下来。 但是,如果没有别的办法,那么我明白了。 处理请求的最接近的服务器将是非常好的,但不是必须的。 有一些事情要记住。 HAProxy负载平衡: 无论如何,因为我已经在使用HAProxy,所以做起来真的很容易。 不过,我认为问题出现在分配带宽时。 我可能在这方面是错误的,但不HAProxy发送请求到服务器处理它的服务器,然后通过HAProxy发送回到客户端? 因此,所有stream量都通过负载均衡器返回,从而使其占用与所有服务器组合在一起的带宽。 DNS循环: 这可能是我最好的select。 只需复制网站跨多台服务器,并做我现在正在做的事情。 缺点是如果一台服务器停机,客户端仍然被发送到它。 我也需要在多个服务器上复制站点。 我有种希望,我可以有一个主要的服务器,除了静态文件处理一切,然后有几个静态文件服务器。 我还看到,这就是“穷人的负载平衡”,如果有更复杂一点的东西,那就太好了。 直接服务器返回: 这似乎很复杂,但可能是一个不错的select。 我仍然能够发送特定的URL到某些服务器? 就像现在使用HAProxy一样,每个以正确文件扩展名结尾的URL都会被发送到Lighttpd,而其他扩展则被发送到Apache。 所以我需要类似的东西。 就像所有的php请求都由运行平衡软件的服务器处理,而所有的jpg请求都被发送到多个服务器。 理想情况下,如果HAProxy支持Direct Server Return,那么我的问题就可以解决了。 我也不想使用CDN,因为它们非常昂贵,毕竟这只是一个副项目。 你明白我的问题吗? 让我知道如果我没有解释正确的东西,或者如果你需要更多的信息。