Articles of haproxy

用`-k`curl并且不用`-k`

当我打开一个URL使用curl 没有 -k ,我的请求传递,我能够看到预期的结果。 $ curl -vvv https://MYHOSTNAME/wex/archive.info -A SUKU$RANDOM * Trying 10.38.202.192… * Connected to MYHOSTNAME (10.38.202.192) port 443 (#0) * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 * Server certificate: *.MYCNAME * Server certificate: ProdIssuedCA1 * Server certificate: InternalRootCA > GET /wex/archive.info HTTP/1.1 > Host: MYHOSTNAME > User-Agent: SUKU19816 > Accept: */* > < HTTP/1.1 […]

HAProxy + Socket.IO + TornadIO在心跳上断开连接

所以,我在使用HAProxy在端口8888上负载平衡socket.io时遇到了问题。 我的设置是在端口80上监听的NGINX,以及在端口80上运行的Tornado Web服务器实例之间的负载均衡。然后,在同一负载均衡器上,我有一个HAProxy实例侦听端口8888,将请求转发到托pipeTornadIO的networking中的其他计算机服务器实例也在8888上运行。连接在大约前30秒左右工作,然后开始反复断开/重新连接。 重要的是要注意的是,它似乎在第一次心跳尝试中断了……心跳是HAProxy会遇到的与第一次连接尝试/首先几个消息交换相对的不同协议的心跳。 有趣的是,当tornadIO实例与负载均衡器运行在同一台计算机上时,即使使用HAProxy工作(但是连接端口8888并且可以在端口9000上指定tornadIO实例),也不会发生这种情况。 需要注意的是TornadIO不会在整个过程中抛出任何exception或输出任何不正常的结果,显示它不是我的服务器代码,而是代理层中的东西。 让我们也知道,我正在使用RabbitMQ同步所有TonadIO群集,不是我认为这很重要(和HAProxy不接触兔子) 这是我的HAProxy设置: global daemon maxconn 256 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms listen http-in balance roundrobin option forwardfor # This sets X-Forwarded-For timeout queue 5000 timeout server 86400000 timeout connect 86400000 bind *:8888 server server1 18.181.3.164:8888 # ether1 在我的nginxconfiguration中,我插入了: location ~* \.(eot|ttf|woff)$ { […]

HA部署为Python wsgi应用程序

我考虑部署高可用性Python Web应用程序的情况: 负载均衡器 – * wsgi服务器 负载均衡器 – *生产HTTP服务器 – wsgi服务器 生产HTTP服务器(具有负载平衡function,如Nginx) – * wsgi服务器 对于负载平衡器,我考虑HAProxy 对于生产HTTP服务器,我考虑Nginx 对于wsgi服务器,我的意思是直接处理wsgi应用程序(gevent,女服务员,uwsgi …) – *表示一对多连接 – 意味着一对一的连接 没有静态内容可供使用。 所以我想知道是否需要生产HTTP服务器。 每个解决scheme的优缺点是什么? 对于每个场景(1-3),取代wsgi服务器是否有使用wsgi容器服务器(uWSGI,gunicorn),而不是原始的wsgi服务器(gevent,龙卷风)的优势? 我也想知道哪个解决scheme最适合websockets或长时间轮询请求?

HAProxy,Nginx和Node.js SPDY终止

我有一个使用node-spdy的Node.js服务器以{ plain: true, ssl: false }模式运行SPDY服务器(使用HTTP回退)。 在Node.js服务器的顶部,Nginx提供服务并caching静态文件和代理请求到Node.js. 在Nginx之上,HAProxy平衡了负载。 当我第一次实现SPDY时,我只是使用node-spdy在Node.js中进行SSLencryption,但是知道我想用HAProxy来终止SSL,并在我的networking中使用简单的SPDY或HTTP。 我不确定Nginx是否可以处理非encryption的SPDY帧。 任何帮助configurationNginx和HAProxy做到这一点非常赞赏。 谢谢。

反向代理HTTP / 2从h2到h2c

我们有一个能够通过h2c(HTTP / 2明文)提供内容的java web服务器, 我们想在h2c中将使用h2(即标准的HTTP / 2 over SSL)build立的代理连接反向到java服务器。 在nginx上启用HTTP / 2非常简单,处理传入的h2连接工作正常。 我们如何告诉nginx使用h2c而不是http / 1.1代理连接? 注意:非nginx解决scheme可能是可以接受的 server { listen 443 ssl http2 default_server; server_name localhost; ssl_certificate /opt/nginx/certificates/???.pem; ssl_certificate_key /opt/nginx/certificates/???.pk8.key.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:8080/; ## <—- h2c here rather than http/1.1 } } 结论 (2016年6月) 这可以用haproxy使用一个简单的configuration文件来完成。 查询(HttpServletRequest) […]

负载平衡networking套接字和长轮询

如果我的networking应用程序运行在三台支持Web套接字的客户机上,并且客户机连接到其中一台机器上,那么每个请求是否总会进入同一台机器,或者负载平衡器是否可以将其发送到不同的机器上? 基本上,一旦networking浏览器通过networking套接字build立连接,负载平衡器可以发送每个请求到不同的服务器吗? 如果是这样,哪个负载平衡器可以做到这一点? 另外,如果我使用类似检测浏览器兼容性的框架并select适当的协议,这将如何影响负载均衡机会?

丢弃连接到服务器。 Haproxy + Nginx + Unicorn

一些对我的网站的请求失败,“服务器意外地丢弃了连接”,并且在错误日志中没有错误。 RPM是1-1.2k。 你有什么想法? 这里是haproxy,nginx和独angular兽的configuration: https://gist.github.com/releu/59b7f1d649c681856320

Node.JS,HAproxy和Socket.IO通过NGINX,应用程序位于子目录中

我一直在尝试几个小时,并已阅读本网站和互联网提供什么。 我似乎不能让Socket.IO在这里正常工作。 我知道nginx默认不能处理Socket.IO,但是,HAproxy可以。 我希望nginx通过unix套接字来服务Node应用程序,这很好。 每个人都有一个由nginx设置的子目录位置,但是,现在我需要Socket.IO为最后的应用程序,我现在在configuration丢失。 我有最新的socket.io,HAproxy 1.4.8和nginx 1.2.1。 运行Ubuntu。 所以重申,我需要通过nginx将socket.io工作到子目录中的节点应用程序,例如:localhost / app /。 Diagram: WEB => HAproxy => Nginx => {/app1 app1, /app2 app2, /app3 app3} 让我现在如果我能提供任何其他的东西!

HAProxyencryption/解密cookies

我们正在尝试使用HAProxy设置负载平衡器,它将为多个后端Web应用程序提供服务。 用例如下所示: 用户浏览到foo.com/app1 HAProxy认为cookie不包含会话信息,并且redirect到一个authentication网关(一个单一login页面) 身份validation网关提供一个表单,如果用户成功login,网关将redirect回HAProxy,COOKIE会存储会话详细信息 HAProxy现在看到有效会话信息存在,并使用相同的COOKIEredirect到app1-internal.foo.com(实际的Web应用程序) – Web应用程序将进一步使用该COOKIE。 我们的疑问是在第三步。 我们想要encryptionauthentication网关添加的cookie(通过AES或类似的)。 问题是,在HAProxy端,我们似乎无法弄清楚如何解密它,因为HAProxy似乎不支持解密头文件(或者甚至运行一个可以解密它的外部C / C ++程序)。 所以我们的问题是: 我们可以在HAProxy上解密AESencryption的头文件吗(注意,这不是SSL连接)? HAProxy是不是真的为这个用例devise的 – 是否有更好的工具来达到这个目的? 提前谢谢了!

HAProxydynamic服务器地址

我们有类似的设置这个图 在请求到达HAProxy的地方,它的roundrobin平衡到任何服务器,后端服务器检查它的caching,如果资源不在那个服务器上,它会发出redirect,头部被设置为正确的服务器IP。 第二次请求到达HAProxy,它检测到带有后端服务器的头在那里,但是我怎样才能把这个IP和直接请求直接给它? 例如,第二次请求到达haproxy它有头X-BACKEND-IP=10.0.0.5 所以,而不是haproxy试图负载平衡该请求,我希望它读取标题,采取该IP,并直接到后端。 那可能吗? 如果不是的话,用nginx可以吗?