Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2327274
  • 博文数量: 145
  • 博客积分: 8668
  • 博客等级: 中将
  • 技术积分: 3922
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-09 21:21
个人简介

work hard

文章分类

全部博文(145)

文章存档

2016年(1)

2015年(1)

2014年(1)

2013年(12)

2012年(3)

2011年(9)

2010年(34)

2009年(55)

2008年(20)

2007年(9)

分类: 架构设计与优化

2016-03-18 00:44:39

2015 年写的《HAProxy 介绍》,欢迎大家一起讨论 HAProxy。

本文档可以自由下载,但不得用于商业用途。

HAProxy 介绍-by-Godbach.pdf

阅读(9425) | 评论(12) | 转发(2) |
1

上一篇:What is Overcommit? And why is it bad?

下一篇:没有了

给主人留下些什么吧!~~

godbach2016-03-21 11:18:58

coldgin:想问下haproxy反向代理的原理
比如说,IP 1.1.1.1 访问 haproxy的前端监听的IP 2.2.2.2 的8080 端口,转后请求给到后端服务器 3.3.3.3 的8080

站在haproxy的角度上来看,会有非常多的客户端来访问haproxy,由haproxy来做为中间人将客户端请求转发到后端后。  haproxy是通过什么机制来保证 1.1.1.1的客户端请求依然是返回给他而不是别的机器呢。

确实不了解,才想问下您。
我想把我的问题,再说的详细一点,比如说DNAT,靠的是在系统里面维护一张NAT转换关系表项,来保证一一对应。那haproxy是不是也维护着同样的一个转换关系表,如果确实存在,能通过什么方式查看到吗。

我自己做过的尝试是用tcpdump抓包,网络层是看清楚了,能看到客户端请求先是到haproxy,haproxy再做为源IP发送请求到后端。
但还是不知道haproxy在软件层面具体的反向代理原理。
另外haproxy 的4层tcp和7层 http 代理的原理有区别吗。
一直以来,听说的是nginx只做

HAProxy 是一个应用层的程序,所以不管是做七层负载还是四层负载,都是要真正建连起来 TCP 连接的。正如我 PPT 前面提到的,client -> HAProxy 和 HAProxy -> real server 各是一条独立的 TCP 连接。

所以,回复给 client 的 数据,都是从 HAProxy 发出的。real server 接收到的请求,都来来自于 HAProxy。这个过程中,对于 Client 来说,HAProxy 是 server。对于 real server 来说,HAProxy 是 client。

HAProxy 自己内部有 session 表,记录了 client -> HAProxy -> real server 的全部信息,它就可以正确的将数据来回的转发。注意,这里的转

回复 | 举报

coldgin2016-03-19 18:14:50

想问下haproxy反向代理的原理
比如说,IP 1.1.1.1 访问 haproxy的前端监听的IP 2.2.2.2 的8080 端口,转后请求给到后端服务器 3.3.3.3 的8080

站在haproxy的角度上来看,会有非常多的客户端来访问haproxy,由haproxy来做为中间人将客户端请求转发到后端后。  haproxy是通过什么机制来保证 1.1.1.1的客户端请求依然是返回给他而不是别的机器呢。

确实不了解,才想问下您。
我想把我的问题,再说的详细一点,比如说DNAT,靠的是在系统里面维护一张NAT转换关系表项,来保证一一对应。那haproxy是不是也维护着同样的一个转换关系表,如果确实存在,能通过什么方式查看到吗。

我自己做过的尝试是用tcpdump抓包,网络层是看清楚了,能看到客户端请求先是到haproxy,haproxy再做为源IP发送请求到后端。
但还是不知道haproxy在软件层面具体的反向代理原理。
另外haproxy 的4层tcp和7层 http 代理的原理有区别吗。
一直以来,听说的是nginx只做