Articles of haproxy

Haproxy通过查询string设置后端服务器

我正在使用粘性会话进行有状态的请求到我们的后端服务器。 Haproxy设置cookie,设置工作正常。 我现在想要通过查询string来设置所需的后端服务器,以便testing和不能使用cookie的客户端。 这两个卷发应该到相同的后端: curl mysite.com -I –cookie "serverid=app-2" curl mysite.com?serverid=app-2 -I 我已经尝试了许多configuration组合无济于事。 backend myapp cookie serverid insert indirect nocache stick-table type string len 32 size 1M stick on cookie(serverid) stick on url_param(serverid) server app-0 111.111.111.111:80 cookie app-0 server app-1 222.222.222.222:80 cookie app-1 server app-2 333.333.333.333:80 cookie app-2 在haproxy中可以这样做吗?

负载平衡和高可用性networking限制

我正在使用HAProxy Reverse Proxy&Keepalive提供高可用性的Apache / MySql虚拟服务器组。 我知道我将使用一个浮动公共IP,然后configurationHAProxy将stream量中继到configuration文件中的服务器。 据我所知,所有服务器实例需要在同一个networking上,这是一个问题,就好像数据中心停机一样,服务器组失败。 如何创build一个高度可用的安装程序,并不要求所有的虚拟服务器都在一个单一的networking下。 我认为这个问题将依赖于浮动IP和HAProxy。 例如: aws上的Linode 2服务器上的Digital Ocean 2服务器上的2台服务器 Digital Ocean在此页面上指定“两台服务器必须位于同一数据中心内,并且应启用专用networking。” 他们正在使用Keepalive。

如何configuration在防火墙后面运行的HAProxy服务器?

我遇到以下问题: 我正在防火墙后面的CentOS 7上build立一个HAProxy负载平衡器。 HAProxy服务器上的防火墙以及外部防火墙都被configuration为可以访问必要的端口。 内部networking上的一切正常工作。 通过这个,我的意思是在另一台内部服务器上键入HAProxy服务器的IP将带你到正确的网站。 问题是试图从外部访问该网站不工作。 例如,inputdomainname.com首先通过防火墙,但没有被代理服务器正确redirect。 不工作 domainname.com —–> firewall —-> haproxyip —-> haproxy —–> site 工作(从内部networking上的其他服务器) haproxyip —-> haproxy —–>网站 这就是haproxy的configuration文件,如果感兴趣的话。 frontend main bind *:80 bind *:443 ssl crt /cerfilepath/cert.pem redirect scheme https if !{ ssl_fc } default backend app backend app balance roundrobin server app1 xxx.xx.xxx.xx:port server app2 xxx.xx.xxx.xy:port 通过研究发现,大多数HAProxy设置不在防火墙后面。 不幸的是,这不是我的情况。 […]

在use_backend语句中结合ACL

我想在haproxy( src和path_beg )中结合两种不同types的acl来决定使用哪个后端。 我尝试了以下是不正确的语法: acl my_ip src 192.168.0.50 acl api_path path_beg /api use_backend private_backend if my_ip AND api_path use_backend public_backend if api_path AND在第三行不起作用。 我也尝试了下面这是不正确的语法: acl my_ip_and_api_path src 192.168.0.50 path_beg /api 在src和IP之后使用path_beg不起作用。

HAProxy直接路由和keepalived

我似乎找不到合适的文档来解释这个问题,或者更好的方法来看看我认为清楚的东西。 我了解HAProxy / keepalived,多年来与许多不同types的负载平衡器一起工作。 我无法包裹的是直接路由的实现。 为了清楚起见,我非常熟悉直接服务器返回(直接路由)如何在所有负载均衡器中工作,但我想了解HAProxy / keepalived如何实现这一点。 我的理解是,HAProxy根本不支持这一点,唯一的select是使用keepalived ipvs。 所以任何人都可以告诉我: 1)我确定HAProxy本身不支持直接路由吗? 2)为什么我需要同时使用HAProxy和Keepalived来直接路由? 看来你应该只需要keepalived这个工作。 感谢任何指针..

Haproxy会话信息页面的含义是什么?

我正在使用haproxy 1.6.8。 输出以下信息 echo "show sess" | nc -U /var/lib/haproxy/stats 0x1696d40: proto=tcpv4 src=67.55.94.187:51183 fe=adf be=adfback srv=capped ts=08 age=0s calls=4 rq[f=8400a0h,i=0,an=2000h,rx=,wx=,ax=] rp[f=400000h,i=0,an=60000h,rx=59s,wx=,ax=] s0=[7,8h,fd=186,ex=] s1=[7,108h,fd=209,ex=] exp=59s 0x17d4dd0: proto=tcpv4 src=173.239.36.124:19785 fe=adf be=adfback srv=capped2 ts=08 age=0s calls=4 rq[f=8400a0h,i=0,an=2000h,rx=,wx=,ax=] rp[f=400000h,i=0,an=60000h,rx=59s,wx=,ax=] s0=[7,8h,fd=100,ex=] s1=[7,108h,fd=246,ex=] exp=59s 0x16f7fc0: proto=tcpv4 src=67.55.94.183:54971 fe=adf be=adfback srv=capped ts=08 age=0s calls=4 rq[f=8400a0h,i=0,an=2000h,rx=,wx=,ax=] rp[f=400000h,i=0,an=60000h,rx=59s,wx=,ax=] s0=[7,8h,fd=168,ex=] s1=[7,108h,fd=288,ex=] exp=59s 0x1a8b170: proto=tcpv4 src=67.55.94.182:18194 […]

haproxy并redirect到其他url?

我已经花了大多数今天玩haproxy,因为我有兴趣使用它作为一个网站的代理。 有些是http,有些是https,它似乎运作良好,但我有一个问题,我在文档中淹没,无法find我想要的。 比方说,我有www.proxieddomain.com ,我有ACL允许像/folderA和/folderB等path。 我想任何stream量的/invalidpath只是发送到/invalidpath ,或发送到www.corpwebsite.com这是不落后haproxy。 有什么build议的方式来做到这一点?

Haproxy:如何在达到maxconn时主动重置客户端连接?

从文档: maxconn <number> Sets the maximum per-process number of concurrent connections to <number>. It is equivalent to the command-line argument "-n". Proxies will stop accepting connections when this limit is reached. The "ulimit-n" parameter is automatically adjusted according to this value. See also "ulimit-n". Note: the "select" poller cannot reliably use more than 1024 file […]

HAProxy无法启动SYSV

我试图启动ha代理,但没有成功。 这是来自journalctl -xe的一个错误: Oct 18 23:11:27 upload-server polkitd[578]: Registered Authentication Agent for unix-process:2044:11115 (system bus name :1.14 [/usr/bin/pkttyagent –notify-fd 5 –fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) Oct 18 23:11:27 upload-server systemd[1]: Starting SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments…. — Subject: Unit haproxy.service has begun start-up — […]

haproxy只连接到一个后端服务器

我在Ubuntu 16.04服务器上的一个非常基本的configuration上遇到了一些麻烦,使用haproxy来平衡两个碳中继过程中的传入度量。 Haproxy仅在“listen”部分的服务器列表中创build一个到第一个服务器的TCP连接。 此外,当我tcpdump和观察这两个碳中继端口,只有连接的一个从haproxy接收任何指标,但如果我启用服务器条目中的“检查”参数,运行状况检查显示在tcpdump输出。 如果我把第一台服务器注释掉,或者反转它们的顺序,它连接到另一台服务器,其他的testing并没有显示碳中继过程有什么问题,所以我很难理解为什么它只能连接到一台服务器。 我已经尝试了roundrobin,static-rr和leastconn作为余额选项。 下面是haproxy.cfg和carbon-relay.conf相关部分的要点,以及netstat输出,显示到一台服务器的侦听端口和tcp连接。 https://gist.github.com/Calygos/b1442e0936adafb27fc80a76477235e9