Articles of haproxy

HaProxyconfiguration来平衡Node Js – WebSockets

我刚刚在Debian系统上安装了HaProxy 1.6,我想用它来分发WebSocket(WS://)连接。 系统运行同一WebSocket服务的5个服务器实例; 这些实例具有相同的IP地址但不同的端口: 192.168.10.1:801 192.168.10.1:802 192.168.10.1:803 192.168.10.1:804 192.168.10.1:805 我正在寻找一些build议来创build一个简单的configuration文件来侦听端口800上的请求,并在服务器之间平均分配(也许?)。 defaults mode http # Set timeouts to your needs timeout client 5s timeout connect 5s timeout server 5s frontend all 0.0.0.0:800 mode http timeout client 120s option forwardfor # Fake connection:close, required in this setup. option http-server-close option http-pretend-keepalive acl is_sockjs path_beg /echo /broadcast /close […]

Einaros WS服务器 – 未实现的消息

使用Node JS + Einaros WS Server启动服务器并在浏览器上打开http:// serverIp:端口时,出现“ Not Implemented ” 模块文件WebSocketServer.js文件如下所示: if (options.isDefinedAndNonNull('port')) { this._server = http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Not implemented'); }); this._server.listen(options.value.port, options.value.host, callback); this._closeServer = function() { self._server.close(); }; } 而不是发送这个Not implemented消息,我怎样才能模拟不可用或页面不存在? 我不想让客户端弄清真正的serverIp / Port,因为它实际上是在haProxy负载均衡器后面工作的。

Node.js和haproxy

我使用node.js和socket.io。 我有一个运行在IP地址:31.31.69.79:3000的应用程序 我有一个域名:zkus.eu – 我想redirect这个域名到这个IP:31.31.69.79:3000 如何设置haproxyconfiguration(haproxy.cfg)?

在haproxy – > node.js – > db的负载testing期间内核丢弃

我们正在对我们的游戏服务器堆栈进行负载testing,其中包括haproxy / ssl – > node.js(应用程序服务器) – >数据库 调用get然后node.js传递给db,然后将数据返回给客户端,在不同的testing中,我们看到很多奇怪的问题,我们无法追踪到。 运行tcpdump'tcp [13]&4!= 0'|时 grep http-alt 我们在日志中看到各种各样的东西: 23:35:16.049886 IP xx > xx.http-alt: Flags [R], seq 2946709660, win 0, length 0 23:35:16.668370 IP xx.62737 > xx.http-alt: Flags [R.], seq 4204676699, ack 3037703652, win 68, options [nop,nop,TS val 153103530 ecr 133109021], length 0 23:36:06.030500 IP xx.40290 > xx.http-alt: Flags […]

closuresSockJS连接

我在我的SockJS servers前面使用了HAProxy ,并且遇到了SockJS连接不好的问题。 我的NodeJS代码: var sockjsSockets = {}; /** * SockJS Server */ var echo = sockjs.createServer({ log: function (severity, message) { // Skip logging }, disconnect_delay: 20 }); echo.on('connection', function (conn) { // Identify this connection sockjsSockets[conn.id] = conn; conn.on('data', function (message) { // Write… }); conn.on('close', function () { try { delete sockjsSockets[conn.id]; […]

平衡服务器上的Hyproxy和100%负载上的100%CPU负载

2个应用程序服务器位于Haproxy服务器后面,使用负载平衡的最less连接方法。 然而,每10-15秒,应用程序服务器的CPU负载将会从非常小的到100%! 一个核心上Haproxy服务器的负载通常是90-100%。 问题 :由于Haproxy无法承受负载,所以2台应用程序服务器上的连续CPU峰值? 我们是否应该担心Haproxy只有60k连接的100%负载? Haproxy统计 pid = 4359 (process #1, nbproc = 1) uptime = 0d 17h39m45s system limits: memmax = unlimited; ulimit-n = 524319 maxsock = 524319; maxconn = 262144; maxpipes = 0 current conns = 63194; current pipes = 0/0 Running tasks: 139/63216 HAProxy的 应用服务器 HAProxy的 应用服务器

HAProxy不保持HTTP连接打开

我有一个Node.js服务器使用服务器发送事件(SSE)来允许推送通知连接的Web客户端。 当浏览器直接与节点对话时,它工作的很好。 但是,当我把haproxy放在中间时,为了达到其他要求,生产线必须每隔30秒closures并重新打开(感谢SSE的自动重新连接)。 我已经改变了,并尝试了我所知道的一切,并可以在haproxyconfiguration中在线find。 大多数信息都在那里,在他们的文档示例中涉及套接字,但是对于SSE的支持却很less。 它应该支持SSE的持久HTTP连接吗? 如果是的话,configuration它有什么窍门? 我的configuration如下:全局守护进程#最大并发连接数maxconn 4096#删除端口绑定后的权限用户nobody组nogroup#在文件中存储进程的pid pidfile /var/run/haproxy.pid#为stats stats创build此套接字socket /无功/运行/socketsHAProxy的 defaults log global mode http # disable logging of null connections option dontlognull # I've tried all these to no avail #option http-server-close #option httpclose option http-keep-alive # Add x-forwarded-for header to forward clients IP to app option forwardfor # maximum time […]

HAProxy / Websockets为什么新的套接字不断创build?

我试图用HAProxy设置Websockets,具有以下configuration:http traffic – > haproxy – > varnish – > nginx – > node ws traffic – > haproxy – > node 一个子域强制ssl,以便haproxy将任何httpstream量redirect到https。 (和ws到wss) 一切都按预期工作,除了一个问题,新的套接字不断被创build,而不是一个(我可以看到他们在Chrome的debugging控制台每隔几秒创build一次) 当我使用Varnish做Websocketspipe道时,我没有这个问题。 我怎样才能解决这个问题 ? global daemon defaults mode http frontend insecure # HTTP bind :80 timeout client 5000 # acl acl is_console hdr_end(host) -i console.mydomain.com acl is_client hdr_end(host) -i www.mydomain.com acl […]

OpenShift + HAProxy会话太多

我正在开发一个使用Kraken.js的应用程序,并pipe理我决定使用的会话:connect-mongo。 我有这样的设置: 'use strict'; var session = require('express-session'); var MongoStore = require('connect-mongo')(session); module.exports = function SessionLib(opts) { return session({ secret: opts.secret, resave: opts.resave, saveUninitialized: opts.saveUninitialized, store: new MongoStore({ url: opts.url, ttl: opts.ttl }) }); }; 我在OpenShift中部署了自动缩放的应用程序,OpenShift使用HAProxy进行自动缩放,但是这导致了我在MongoDB中产生了太多会话的错误(上个周末约有25万个)。 有没有保持HAProxy会话的可能性?

设置haProxy以便在Appfog上切换多个应用程序

我目前在AppFog有两个应用程序,他们是。 http://sru-forums-prod.aws.af.cm/和http://sru-home-prod.aws.af.cm/ 我有我的电脑本地运行haProxy,这是我目前的configuration文件。 全局debugging defaults mode http timeout connect 500ms timeout client 50000ms timeout server 50000ms backend legacy server forums sru-forums-prod.aws.af.cm:80 frontend app *:8232 default_backend legacy 最终目标是localhost:8232将stream量转发到sru-home-prod,而localhost:8232 / forums / *将stream量转发到sru-forums-prod。 但是,我甚至不能得到一个简单的代理启动和运行。 当我运行HAProxyclosures这个configuration文件时,我收到AppFog 404 Not Found at localhost:8232。 我错过了什么,甚至有可能? 编辑: 新的configuration工程,但现在我有一个端口60032回来响应。 global debug defaults mode http timeout connect 500ms timeout client 50000ms timeout server 50000ms […]