1、正向代理
正向代理服务器:squid
用于代理内部网络对 Internet 的连接请求(如 VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标 Web 服务器的 HTTP 请求先发送到代理服务器上,然后由代理服务器去访问 Web 服务器,并将 Web 服务器的 Response 回传给客户端。
2、反向代理:
与正向代理相反,如果局域网向 Internet 提供资源,并让 Internet 上的其他用户可以访问局域网内资源,也可以设置一个代理服务器, 它提供的服务就是反向代理。反向代理服务器接受来自 Internet 的连接,然后将请求转发给内部网络上的服务器,并将 Response 回传给Internet 上请求连接的客户端。
2.1 squid
最古老的代理服务器
2.2 lvs
优点:抗负载能力强、是工作在网络4层之上仅作分发之用
配置性比较低,这是一个缺点也是一个优点,简单不易出错
工作稳定,抗负载能力很强,有完整的双机热备方案,如LVS(DR)+ Keepalived。
无流量,LVS只分发请求,而流量并不从它本身出去
应用范围比较广,几乎支持所有应用
不支持正则表达式处理,不能做动静分离
网站应用比较庞大的话,LVS/DR+Keepalived实施起来比较复杂
HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段)
HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡
HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有8种
不支持POP/SMTP协议
不支持SPDY协议
不支持HTTP cache功能
重载配置的功能需要重启进程
多进程模式支持不够好