Articles of haproxy

HAProxy 1.7统计设置

我已经尝试了多个networking教程来启用HAProxy统计(只是谷歌haproxy统计和尝试前10链接),但我相信这些是旧的HAProxy版本。 我在Ubuntu 16.04 LTS上运行1.7。 这里是我的/etc/haproxy/haproxy.cfg文件(这包括Datadog关于启用统计信息的说明)。 如果我删除listen ….块,它开始罚款。 当它在那里,我得到以下错误: sudo service haproxy stop sudo service haproxy start Job for haproxy.service failed because the control process exited with error code. See "systemctl status haproxy.service" and "journalctl -xe" for details. journalctl和systemctl输出都显示“服务启动得太快,错误 haproxy.service – HAProxy Load Balancer Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor preset: enabled) Active: inactive (dead) (Result: exit-code) […]

Haproxy负载均衡与HTTP头

我们正在使用HAProxy来平衡我们的websocket和comet应用程序。 有一个HAProxy和3个应用程序在后面运行。 我们使用HTTP基本身份validation(我们将在未来使用其他types的身份validation,如OAuth)来识别连接的用户。 我们不能使用常规循环,因为给定用户的连接最终在同一台服务器上是非常重要的。 在哪里并不重要,但重要的是他们使用相同的服务器。 我知道HAProxy是一种基于cookie的智能方法,但不幸的是,在我们的情况下,有时候,同一个用户将被连接到不同的机器上,所以cookie不能工作)。 是否可以使用HTTP授权标头的哈希来执行负载平衡? 另外,这个更复杂,是否可以定义我们自己的哈希方法? 跟进问题[威利回应之后]: 既然可以做到balance hdr(Authorization) ,那么只能在login字段(parsing后)才能做到这一点吗? 另外,什么是确切的algorithm? 我相信它的forms是hash(Authorization) % number_of_backend_server ,但是,什么是散列函数,更重要的是,它是可调整的? (或者我可以添加一个偏移量)。 我问,因为这个应用程序实际上是一个XMPP组件连接打开,我需要负载平衡XMPP组件与相同的algorithm。 XMPP节中的jid由HTTP Header Authorization确定。

HAProxyconfiguration文件中的主机名

我的haproxy.cfg文件有两个使用主机名的后端服务器: server ops-ca-revealv2e-prod-1 ops-ca-revealv2e-prod-1:443 cookie ops-ca-revealv2e-prod-1 ssl weight 1 maxconn 512 check server ops-ca-revealv2e-prod-2 ops-ca-revealv2e-prod-2:443 cookie ops-ca-revealv2e-prod-2 ssl weight 1 maxconn 512 check 这些主机名是Amazon OpsWorks的一部分,每当实例启动或closures时都会自动注入到/ etc / hosts中。 如果我尝试重新启动HAProxy时,其中一个实例closures,我收到错误: [ALERT] 362/225440 (27202) : parsing [/opt/haproxy-ssl/haproxy.cfg:42] : 'server ops-ca-revealv2e-prod-2' : invalid address: 'ops-ca-revealv2e-prod-2' in 'ops-ca-revealv2e-prod-2:443' [ALERT] 362/225440 (27202) : Error(s) found in configuration file : /opt/haproxy-ssl/haproxy.cfg […]

有没有办法configurationHAProxy发送基于cookie的stream量?

在configurationHAProxy时,我想根据存在的cookie将stream量发送到某些服务器。 例如: 有一个HAProxy服务器和2个Web服务器(serverA和serverB)。 当有人login时,会创build一个cookie“loginCreds = user:company”。 当来自CompanyA的John进来时,他的cookie是“loginCreds = John:CompanyA”。 他的stream量将被引导到serverA。 这是可能的,如果是的话,你如何设置它?

基本重量与HAProxy的问题

分配给服务器的权重只影响特定后端的平衡吗? 当我第一次实行权重时,如果我把所有的服务器放在后端的数目相同,那么当我们没有权重的时候,是否和以前一样? 如何通过调整权重一定的数量来计算我正在炫耀的stream量。 例如: 服务器web1 10.10.10.10重量100 服务器web2 10.10.10.11权重100 服务器web3 10.10.10.12权重90 服务器web4 10.10.10.13权重90

nginx访问日志忽略某些请求

我在haproxy后面运行nginx(在同一台服务器上运行)。 我已经configurationhaproxy在nginx上使用一个简单的html文件来validation服务已经启动,因为我没有/想在这个主机上有一个有效的“/”URL。 Nginx不支持OPTIONS请求types(据我所知),这是haproxy使用的默认值,所以我把它改成了GET。 由于我在nginx中打开了访问日志,因此我在访问日志中获取了所有这些正常运行时间轮询请求。 有没有办法,我可以configurationNginx忽略某些请求,并跳过日志logging? 这是haproxy的后端: backend static_http option httpchk GET /test.html option redispatch balance roundrobin #fullconn 1000 server w1_static www1:81 check port 81 inter 2000 以下是我在nginx日志中看到的内容: 127.0.0.1 – – [24/Jul/2009:19:28:22 +0000] "GET /test.html HTTP/1.0" 200 12 "-" "-" 127.0.0.1 – – [24/Jul/2009:19:28:24 +0000] "GET /test.html HTTP/1.0" 200 12 "-" "-" 127.0.0.1 – – [24/Jul/2009:19:28:26 […]

使用HAProxylogging整个POST正文?

我试图跟踪一个JavaScript客户端与应用程序服务器交互的方式的一些问题,并希望看到来回传递的整个HTTP有效载荷(头,身体和一切)。 恰好在应用程序服务器前已经有一个haproxy服务器,所以我希望能够使用haproxy来提供相关的日志。 很明显,在生产环境中打开会很糟糕,但是我可以在执行此debugging的同时克隆整个可以隔离的环境。 有没有办法让haproxylogin到特定的后端服务器的POST请求的整个HTTP负载?

强制HAProxy为后端服务器查找DNS

我有haproxy 1.5.8,它代表了一些请求(基于path)我们无法控制的第三方。 由于后台服务器的IP在启动时parsing一次,如果IP发生变化,则会中断。 如果有解决方法? 在nginx中,可以声明一个内部variables并将其cachingX秒。 我没有find类似的HAProxy解决scheme。

只有在服务器closures的情况下才能进行HAProxy切换

比方说,我有2个服务器 – SA和SB。 是否可以configurationHAProxy的工作是这样的: 所有连接进入SA – > SA下降 – > HAProxy将所有连接切换到SB – >直到SB没有closures – 即使再次连接到SA,连接也不会连接到SA – > SB断开 – > HAProxy切换到SA .. 。 简而言之,我希望HAProxy仅在当前服务器出现故障时切换。 也许我应该用别的比HAProxy?

HAProxy终止SSL也发送SSL到后端服务器

我想在HAProxy上终止SSL,对头进行一些操作,重写URL并重新encryptionstream量,并将其作为SSL发送到后端服务器? 我似乎无法find办法做到这一点。 我可以定期完成SSL终止,并将纯HTTP请求发送到后端。 但是我需要发送SSL到后端。 我想有以下function: 提取x-forwarded-for标题,以获得代理后面的真实客户端IP。 使用cookie实施会话粘性。 做一些URL重写。 使用基于cookie的会话粘性将SSLstream量发送到后端。 除非我在haproxy结束SSL终止,否则我无法完成URL重写。 任何在这里的好人的帮助将受到高度赞赏。