HAProxy+Nginx实现负载均衡PDF

栏目: 服务器 · 发布时间: 6年前

内容简介:HAProxy+Nginx实现负载均衡PDF

一、什么是Haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

二、负载均衡常用的调度算法

轮循(Round Robin)

这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量 以及负载形同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载形同。基于这个前提,轮循调度是一个简单而有效的分配请求 的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,即使这个服务器已经不能再处理当前这个请求了。 这可能导致能力较弱的服务器超载。

最少连接数(Least Connection)

以上两种方法都没有考虑的是系统不能识别在给定的时间里保持了多少连接。因此可能发生,服务器B服务器收到的连接比服务器A少但是它已经超载,因为 服务器B上的用户打开连接持续的时间更长。这就是说连接数即服务器的负载是累加的。这种潜在的问题可以通过“最少连接数”算法来避免:传入的请求是根据每 台服务器当前所打开的连接数来分配的。即活跃连接数最少的服务器会自动接收下一个传入的请求。接本上和简单轮询的原则相同:所有拥有虚拟服务的服务器资源 容量应该相近。值得注意的是,在流量率低的配置环境中,各服务器的流量并不是相同的,会优先考虑第一台服务器。这是因为,如果所有的服务器是相同的,那么 第一个服务器优先,直到第一台服务器有连续的活跃流量,否则总是会优先选择第一台服务器。

源IP哈希(Source IP Hash)

这种方式通过生成请求源IP的哈希值,并通过这个哈希值来找到正确的真实服务器。这意味着对于同一主机来说他对应的服务器总是相同。使用这种方式,你不需要保存任何源IP。但是需要注意,这种方式可能导致服务器负载不平衡。

三、案例环境

主机 操作系统 IP地址

主要软件

Haproxy CentOS 6.5 x86_x64 192.168.25.5 haproxy-1.4.24.tar.gz
Nginx Server 1 Centos 6.5 x86_x64 192.168.25.3 nginx-1.6.0.tar.gz
Nginx Server 2 Centos 6.5 x86_x64 192.168.25.4 nginx-1.6.0.tar.gz
Client Windows 7 192.168.25.6 IE浏览器

这里服务器是托管在IDC中,公网访问使用的是防火墙NAT映射的公网IP,因此服务器端只需要配置一个内网IP即可。如果没有防火墙映射,建议在服务器端配置双网卡双IP,公网请求访问公网IP的网卡,Haproxy与各个节点间通信使用内网网卡。

HAProxy+Nginx实现负载均衡PDF

四、案例实施

1、编译安装Nginx服务器

1)安装一些必要组件

[root@localhost ~]#yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2)创建nginx用户,并设置为禁止登陆

[root@localhost ~]#useradd -M -s /sbin/nologin nginx

3)解压并进入到nginx安装目录

[root@localhost ~]# tar xf nginx-1.6.0.tar.gz

[root@localhost ~]# cd nginx-1.6.0

4)编译安装nginx

[root@localhost nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install

5)创建一个软连接,方便nginx的启动

[root@localhost nginx-1.6.0]# ls /usr/local/nginx/

conf  html  logs  sbin

[root@localhost nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@localhost nginx-1.6.0]# ll /usr/local/sbin/nginx

lrwxrwxrwx. 1 root root 27 12月  7 06:41 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx

6)检查语句是否存在错误

[root@localhost nginx-1.6.0]# nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

相关PDF文档可以到 Linux 公社资源站下载:

------------------------------------------分割线------------------------------------------

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是 www.linuxidc.com

具体下载目录在/2017年资料/4月/18日/HAProxy+Nginx实现负载均衡PDF/

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割线------------------------------------------

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-04/142906.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构与算法分析

数据结构与算法分析

韦斯(Mark Allen Weiss) / 机械工业出版社 / 2010-8 / 45.00元

《数据结构与算法分析:C语言描述》曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评,已被世界500余所大学选作教材。 在《数据结构与算法分析:C语言描述》中,作者精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。 ......一起来看看 《数据结构与算法分析》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具