Articles of haproxy

在大型集群中随着时间的推移Apache的CPU使用率增加

我有一个奇怪的,我昨天才注意到的。 在24小时内,我们的apache机器上的cpu负载(16个双核六核机器)增加了一倍。 我们每个月处理大约80亿个请求,一切都落后于haproxy负载平衡器。 每台机器上正在运行的进程数总是相同的(在负载平衡器上限制),并且任何队列都在haproxy中构build。 我们将haproxy中的运行会话数量限制为每台机器90个(因为每台机器上的ram和cpu限制而被选中) 我们正在使用以下configuration的事件mpm: event MPM <IfModule event.c> ServerLimit 15 MaxClients 960 StartServers 2 ThreadsPerChild 64 ThreadLimit 64 MinSpareThreads 32 MaxSpareThreads 112 MaxRequestsPerChild 20000 </IfModule> 以目前的速度,20K的请求应该意味着线程每2分钟左右重启一次。 内存使用率低。 我们在每台机器上都有12GB的RAM,而在高峰期,它们只用了7GB。 apache的重新启动立即将负载降低一半,并保持几个小时。 任何想法或额外的信息需要?

HAProxy随机导致挂起的请求

我有3个IP地址的域名。 每个地址(1台服务器)都安装了HAProxy服务器。 除了HAProxy,每台服务器都有10个nodejs进程运行。 问题是有大约40%的请求正在等待处理。 有时请求处理非常快(大约160ms),有时需要大约5s甚至超时。 服务器负载相当低(全部8个核心运行约30%),平均负载为2 我做了一些谷歌,并找出我可能已经用尽HAProxy端口接受连接(我不太确定) 我运行ss -s ,输出是 Total: 69452 (kernel 69571) TCP: 106031 (estab 67813, closed 36404, orphaned 570, synrecv 0, timewait 36264/0), ports 0 Transport Total IP IPv6 * 69571 – – RAW 0 0 0 UDP 15 9 6 TCP 69627 69620 7 INET 69642 69629 13 FRAG 0 0 […]

Stunnel只针对特定的域名

我正在configurationstunnel来将SSL请求封装到Haproxy。 Haproxy在同一IP地址上提供多个站点: domain.com – Website app.domain.com – Node.js webserver 我获得了只对网站app.domain.com有效的SSL证书。 我想configurationstunnel接受请愿以: https://app.domain.com 不要请愿: https://domain.com 问题是,如果有人试图joinhttps: //domain.com,stunnel封装了app.domain.com证书(当然这对于这个域是无效的)。 我在stunnel.conf中试过这样的东西: pid = /var/run/stunnel.pid output = /var/log/stunnel.log [https] cert = /etc/ssl/certs/app.domain.crt key = /etc/ssl/private/app.domain.key sni = https:app.domain.com accept = 443 connect = 80 但是当我试图开始stunnel我得到: Line 10: End of section https: Each service must define two endpoints str_stats: 112 block(s), […]

如何在Apache中使用HAProxy和Tomcat7获得大约500次请求/秒

我有4个Tomcat 7服务器的实例,并在所有实例上部署了我的Web App。 我正在使用HAProxy负载平衡器进行负载平衡。 在前端我使用的是Apche2 web服务器,后面是Tomcat 7. HAproxy正在redirect一个;; 对不同的tomcat实例的请求。 现在吞吐量是60request / secs。 我想要200-500个请求/秒。 HAProxy中的所有configuration参数都需要设置以实现此目的。 我正在使用Linux CentOs 6.3版本。 Tomcat和Apache的所有实例都在同一台机器上运行。 谢谢

如何更新stunnel上的重新生成的证书?

我已经使用GoDaddy证书configuration了stunnel,并且工作正常。 由于某些情况,我需要重新签名证书并更新负载均衡器上的pem文件。 在更新pem文件后,certificate证书状态被吊销。 我已经检查了这个GoDaddy,他们说,没有任何错误的证书。 我还使用了一些工具来validation已安装的证书,并注意到原始证书仍被识别。 Stunnel上或负载平衡器中是否有任何caching机制保留原始数据? 是否有任何额外的步骤更新stunnel上的证书? 我使用这个准则build立通道: http : //help.cloud66.com/how-to/ssl-termination-on-load-balancers.html

使用复制在VPS上设置负载平衡器

我正在寻找一些关于如何在VPS上设置负载平衡器的专家build议,为PHP / MySQL复制configuration另外两个VPS,然后将它们连接在一起。 我已经研究过HAProxy和Nginx,这两者都是非常简单的设置 – 只是我希望有人帮助解答一些问题。 1)目前我正在运行一个VPS,它的规格是:(Knownhost,VPS#7) 5632MB保证内存150GB RAID-10磁盘空间8x优先级8+ CPU 10000GB高级带宽 我正在寻找购买两个额外的VPS,这是我的主要VPS的中规格 – 所以我想安装最强大的VPS负载平衡器,因此我目前的主要负责人? 2)一旦我有负载平衡器设置,我知道我的其他VPS的IP地址 – 我正确地假设我只是将负载平衡器configuration到他们的IP? 那么我该如何去做代码复制和数据库复制? 负载平衡器会成为主数据库,还是我会为此分配其他VPS之一? 3)在可伸缩性方面,如果代码在A上更新,我会在B和C上更新它吗? 或者我需要某种自动复制实用程序设置? 我不是很精通服务器或硬件,所以我很感激任何帮助。 谢谢!

引导Galera集群

我们想为我们的项目使用MariaDB Galera群集。 加莱拉群集工作,似乎工作正常。 如果群集的某些节点closures,则群集继续工作。 但是,在所有节点重新启动后(重新启动VMWare主机),群集不起作用。 我必须停止MySQL并启动mysqld –wsrep_cluster_address=gcomm:// &在一个节点上。 之后我可以重新启动所有的节点(一个接一个),并且集群启动并运行。 之后,我在第一个节点上重新启动mysql,所以它在其他节点上运行。 这工作正常,但我的老板想要一些自动执行此操作的脚本,所以一些重新启动VMWare主机的工作人员调用此脚本,并启动并运行群集。 有没有这个脚本(我还没有find)? 有没有免费的或商业的解决scheme(最好有graphics用户界面)? 我们使用HAProxy将负载传递给节点,但是它只是显示节点是否启动或者不启动。 或者这是一个愚蠢的想法,重新启动数据库集群的人必须按照步骤来引导集群?

haproxy中服务器的maxconn参数

我在生产中使用HAProxy来平衡查询到一次只能处理1个查询的一系列服务器实例(通过我们自己的决定)。 知道我在haproxy.cfg文件中的后端configuration的服务器定义行中设置了maxconn参数为1,但服务器仍然得到查询,因为我在服务器的日志消息中看到“查询被拒绝,已经处理”以及HAProxy使用502 http状态码logging返回给客户端的查询。 这是HAProxy的configuration: # this config needs haproxy-1.1.28 or haproxy-1.2.1 global log 127.0.0.1 local6 debug user haproxy group haproxy daemon stats socket /tmp/haproxy defaults log global mode http balance roundrobin option httplog retries 10 option redispatch frontend custom 0.0.0.0:50000 backlog 2000 acl p5queue avg_queue(custombe) gt 200 tcp-request content reject if p5queue default_backend custombe timeout […]

查询MariaDB Galera集群的caching

我已经从多个来源读取你不能拥有查询caching与Galera,但我目前的应用程序可以真正从查询caching中受益。 我正在用HAProxy对这个集群进行负载平衡,并且很好奇HAProxy是否有任何caching能力,或者如果有一个简单的解决scheme来解决这个问题,我就错过了?

使用Haproxy在PHP中检索外部IP

我使用Haproxy在同一台机器上运行websocket服务器和Lighttpd web服务器。 我想从运行在Lighttpd服务器上的Web应用程序中检索机器的外部IP地址。 没有haproxy这个工程: PHP <?php $myip = $_SERVER['SERVER_ADDR']; $myurl = 'http://'.$myip.'/pathToProject/'; define('URL', $myurl); ?> 但是在代理$ _SERVER ['SERVER_ADDR']后面; 返回127.0.0.1,它不适用于我正在使用的PHP框架。 haproxy.conf global maxconn 4096 nbproc 1 defaults mode http frontend all 0.0.0.0:80 timeout client 86400000 default_backend www_backend acl is_websocket hdr(Upgrade) -i WebSocket acl is_websocket hdr_beg(Host) -i ws use_backend socket_backend if is_websocket backend www_backend balance roundrobin option […]