Articles of haproxy

当两台HAProxy服务器中只有一台停机时,系统停机。 故障转移似乎没有工作

首先,我对HAProxy堆栈的使用经历只有一天的时间,所以我希望我的问题是有道理的。 我有2个HAProxy虚拟机和2个Apache虚拟机(stream浪机)如下。 192.168.50.11 HAPROXY VM1 192.168.50.12 HAPROXY VM2 192.168.50.21 APACHE VM1 192.168.50.22 APACHE VM2 192.168.50.10 FLOATING IP – set in keepalived of both HAProxy servers above 如果我把一个Apache服务器closures,并且调用http://192.168.50.10系统仍然可以正常工作。 但是,如果我将其中一个HAProxy服务器closures,则整个服务都将中断。 根据我的configuration,你能告诉我我在这里错过了什么吗? 在这两个服务器上的快乐设置 在/ etc /默认/ HAProxy的 ENABLED=1 /etc/haproxy/haproxy.cfg global log /dev/log local0 log 127.0.0.1 local1 notice user haproxy group haproxy maxconn 2000 daemon defaults log global mode […]

在haproxy.cfg中结合后端块的重复

我有这个HAProxyconfiguration,你可以看到我有很多在backend s重复的东西。 有没有办法摆脱重复,如stats ? global log 127.0.0.1 local0 log 127.0.0.1 local1 notice daemon maxconn 2000 defaults log global mode http option httplog option dontlognull retries 3 option redispatch timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:80 acl url_a path_reg ^\/a$|\/a\/ use_backend webservers_a if url_a acl url_b path_reg ^\/b$|\/b\/ use_backend webservers_b […]

haproxy从httpsredirect中排除一个url

我是haproxy的初学者,试图用haproxy做同样的基本redirect 我有2个网站 www.test.com – >希望将其redirect到https www.test.com/helpsub – >不应该redirect到https并保持在http上 这可能吗 ? 最好的祝福, w ^

从haproxylogging客户端在Apache中的真实IP

我已经设置了一对新的haproxy(v1.5)负载平衡器,并在其后面放置了2个webserver(apache on Centos 6)。 我已经设置了X转发,我可以在web服务器的access_log中看到客户端的真实IP。 但是,我并没有在error_log中看到客户端的真实IP,它只logginghaproxy节点IP。 我究竟做错了什么? 附件是Web服务器的日志configuration。 LogLevel warn <IfModule log_config_module> LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%a %l %u %t \"%r\" %>s %b" common <IfModule logio_module> # You need to enable mod_logio.c to use %I and %O LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" […]

这个错误对5d意味着什么?

我有一个Web服务器HAproxy负载平衡和两个Nginx的+ PHP的FMP。 当我打开我的网站时,我看到了这个错误。 我知道504错误是什么意思,但为什么有5D?

如何用HAProxy中的子域重写url

当用户请求http://sub1.example.com/a/b/c时,我需要将此请求的主机名头replace为example.com,并将path重写为http://example.com/sub1/a/b/ c 。 我试图使用reqrep,但我无法find如何将子域部分添加到path。 reqirep ^Host:\ (.*[^\.])(\.example\.com) Host:\ example.com reqrep ^([^\ :]*)\ (.*) \1\ /???/\2 我find%[req.hdr(host),lower,field(1,'。')]方法来获取子域名,但是我不能在reqrep方法的replace部分中使用它。 如何在这部分使用variables?

基于API版本的HAProxy路由

我正在设置HAProxy,我需要根据API版本进行路由。 问题是V2没有在v1中embedded路由器的前缀。 这是一个例子。 v1 app route = server / v1 / path v2 app route = server / path 我需要configurationHA,以便将server / v2 / path路由到/ server / path,同时返回200而不是302状态码。 我不想让api用户知道任何不同于/ server / v2 / path的东西 这是我的configuration,一切默认为v2。 frontend api bind *:80 stats uri /ls acl url_v1 path_beg /v1 use_backend api_v1 if url_v1 default_backend api_v2 backend api_v2 balance roundrobin […]

HAProxy统计页面后端队列值的说明

如下图所示,我有一个HAProxy后端2台服务器,它们具有以下设置: maxconn 64 check inter 5s fastinter 2s downinter 2s 我的问题关于Queue 。 我怎样才能指定后端队列的限制? 为什么Backend在底部显示11的值,当api-1和api-2分别显示22和18 ? 数字11代表我的情况是什么?

2主机MariaDB Galera群集只有keepalived,没有HAproxy?

我们将用MariaDB Galera master-master复制群集,使用主 – 从复制(总共只有2个主机 – 一个主机,一个从机)replace旧版MySQL数据库,以确保更加无忧的故障转移。 我已阅读的教程通常指示在Galera节点前面创build一个HAproxy实例,以便在它们之间进行负载平衡(并且如果需要高可用性,则使用更多使用keepalived共享虚拟IP的HAproxy实例)。 这就是build议的拓扑结构。 但是在我们的环境中,我们总共只有2个Galera主机(负载很低,因此一个主机就足够了),而且主要的要求是冗余,尽可能无缝地为连接的应用程序进行故障切换。 由于单个主机必须能够处理所有的负载,以防其他人的失败,所以当需要升级硬件时,负载平衡只是模糊了这一点,并且可能引入不必要的写入冲突。 所有的查询都应该到一个主机(另一个主机只是默默的复制),只有在第一个主机失败的情况下,所有的主机都会故障切换到第二个主机,从而成为主机,并且能够复制一切恢复到原来的失败主机。 问题是:如果我们只需要冗余而不是负载平衡,那么在Galera主机前面省略HAproxy实例是否合理,并且两个Galera实例直接共享Keepalived虚拟IP? 还是有什么值得注意的优势(不包括简单的扩展到3 + Galera主机)在我们的情况下仍然使用HAproxy?

是否有可能将networkingstream量从端口复制到2台不同的机器?

首先,我将尝试描述这个问题。 我们使用以下networkingconfiguration: machine1安装了haproxy machine2与应用程序(在这种情况下,我们可以认为是只有RabbitMq服务) machine3作为testing服务器(machine2的副本) 所有的stream量到达机器1的端口(例如777)。 Haproxy将stream量redirect到machine2的端口(例如888)。 在machine2上应用监听端口888并处理请求。 我们也有machine3作为testing服务器,当我们准备下一个版本时,我们要用真实的负载来testing它。 所以现在的问题:是否有可能将来自机器1的端口777到机器2的端口888的传入networking通信复制到机器3的端口888(当我们需要的时候) PS抱歉我的英文不好