两台nginx实现https负载均衡

  categories:资料  tags:, , ,   author:

现在网络完全越来越受到重视, 因此https也是大势所趋, 以往nginx都是工作在http方式下, 其实nginx在https下工作也挺好的。 这里将分步骤的逐步实现一套采用nginx, haproxy, keepalived实现的https系统, 并且系统没有单点故障, 基本适应中小系统的安全需要。

1. Nginx https安装    这个文章主要是安装支持https的nginx, 源代码装过程

2. https安装(2)nginx配置   继承上一个文章, 记录配置过程, 然后实现https服务

本文继承前两个文章, 记录通过nginx实现https的功能, 并且通过haproxy将两台nginx的https进行整合, 统一对外提供服务。

但是本文的方法, 在haproxy上仍然存在单点故障, 下一篇文章, 将修正这个错误

 

本文记录详细的安装过程, 供大家参考。

 一. 准备linux操作系统

本文的nginx和haproxy都是在linux下进行的安装与测试, 因此需要linux计算机。

我们采用vmware作为虚拟机软件, 采用下面的已经安装好的虚拟机镜像做为操作系统。 这样节省了安装时间。

链接:http://pan.baidu.com/s/1nutqTkP 密码:f4bh

  1. 安装好vmware软件, 
阅读全文

haproxy安装配置调优

  categories:资料  tags:  author:

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。

HAProxy 特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql 的均衡负载。。
如果说在功能上,能以proxy反向代理方式实现 WEB均衡负载,这样的产品有很多。包括 Nginx,ApacheProxy,lighttpd,Cheroke 等。
但要明确一点的,Haproxy 并不是 Http 服务器。以上提到所有带反向代理均衡负载的产品,都清一色是 WEB 服务器。简单说,就是他们能自个儿提供静态(html,jpg,gif..)或动态(php,cgi..)文件的传输以及处理。而Haproxy 仅仅,而且专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务。

但其配置简单,拥有非常不错的服务器健康检查功能还有专门的系统状态监控页面,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。自1.3版本开始还引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend。

另外, 版本1.3 是处于活跃开发阶段的版本, 它支持如下新特性:

l 内容交换 : 可以根据请求(request)的任何一部分 来选择一组服务器, 比如请求的 URI , Host头(header) , cookie , 以及其他任何东西. 当然,对那些静态分离的站点来说,对此特性还有更多的需求。… 阅读全文

keepalived+haproxy实现web服务的高可用和负载均衡

  categories:资料  tags:  author:

简介:

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器.

Haproxy 反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入.新的1.3引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.

实验环境以及服务器信息:

OS:   RedHat  AS 5.1

软件列表:

keepalived-1.2.2.tar.gz

haproxy-1.4.13.tar.gz

服务器信息:

Master server  10.10.0.99   (调度主服务器)

Slave server    10.10.0.98   (从调度服务器)

VIP: 10.10.0.97  (调度服务器的虚拟IP)

Real server:

10.10.0.96

10.10.0.95

安装keepalived

#  tar zxvf  keepalived-1.2.2.tar.gz

#  cd keepalived-1.2.2… 阅读全文

Haproxy学习笔记-源码安装

  categories:资料  tags:  author:

原创文章,转载请指明出处并保留原文url地址

haproxy简介

1.1 Haproxy功能介绍

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

下图是HAProxy的架构:

wps_clip_image-4675[4][1]

1.2 Haproxy监控

下图是HAProxy的监控页面截图:

wps_clip_image-15376[3][1]

1.3 Haproxy基本特点

HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当前,HAProxy支持两种主要的代理模式:”tcp”也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式下,HAProxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应(response)里指定内容来控制协议,这种操作要基于特定规则。

l 免费开源,稳定性也是非常好,这个可通过我做的一些小项目可以看出来,单Haproxy也跑得不错,稳定性可以与LVS相媲美;

l 根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom’s 10GbE NICs (Myri-10G PCI-Express),这个作为软件级负载均衡,也是比较惊人的;

l HAProxy可以作为MySQL、邮件或其它的非web的负载均衡,我们常用于它作为MySQL(读)负载均衡;

l 自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警,这个也是我非常喜欢它的原因之一;

l HAProxy支持虚拟主机。… 阅读全文

haproxy 命令配置实例

  categories:资料  tags:  author:

一:Global parameters
* Process management and security
– chroot 改变当前工作目录
– daemon 运行方式为后台工作
– user – group 工作用户和组
-log <address> <facility>日志输出设备
– nbproc 创建工作的进程数目
-pidfile pid文件位置
– ulimit-n 设置每个进程的可用的最大文件描述符
– stats 创建监控所用的套接字目录
– node 创建另外一个节点名字共用一个IP地址,用来识别哪个节点在处理流量
– description 描述实例的名称
maxconn <number> … 阅读全文

HAProxy的安装和部署

  categories:资料  tags:  author:

考虑公司当前服务器的并发量,最终还是选定了HAProxy来实现负载均衡,相较于其他的负载均衡系统,HAProxy的配置和使用还是比较简单的。
下面是自己安装和部署haproxy的记录,比较重要的一点是解决了haproxy + syslog-ng的日志输出问题。
PS: 这个问题费了我好大神:-|

PLATFORM: SUSE Linux Enterprise Server 11 (x86_64)

1. haproxy的编译安装

获取haproxy的源代码
官方地址:http://haproxy.1wt.eu/
目前最新的版本:http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz

命令:

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz

考虑到版本的更新,具体的安装属性可能会稍有改变,建议在安装前可以大致浏览下haproxy目录下的README和Makefile两个文件。
编译haproxy
进入解压后的haproxy的目录,用下列命令进行编译:

make TARGET=os ARCH=arch CPU=cpu USE_xxx=1 …

这里着重说明几个常用的选项。

TARGET
指定对目标操作系统在编译的时候进行优化,可选择如下值之一:
Generic, linux22, linux24, linux24e, linux26, solaris, freebsd, … 阅读全文

linux下利用Haproxy和keepalived实现简单负载均衡

  categories:linux资料  tags:  author:

架构拓扑图如下:
wps_clip_image-2439[3][1]
haproxy
VIP:  192.168.1.150
Master:192.168.1.10
Slave: 192.168.1.11
之间用keepalived实现HA
webserver1:192.168.1.101
webserver2:192.168.1.102
webserver3:192.168.1.103
webserver4:192.168.1.104
1.下载:

#wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.4.tar.gz

2.解压安装

#tar  –zxvf  haproxy-1.3.14.4.tar.gz
#tar zxvf haproxy-1.3.14.4..tar.gz
#mv  haproxy-1.3.14.4  haproxy
#cd haproxy
#make TARGET=linux26

(2.4内核版本 make TARGET=linux24
freebsd  make  TARGET=freebsd
solaris系统  make TARGET=solaris CPU=ultrasparc REGEX=static-pcre)… 阅读全文

数据平台前端缓存技术方案(M/R)

  categories:资料  tags:  author:

1 缓存Memcached(M)

1.1 M的概念

M是高性能的分布式内存缓存服务器,协议简单。通过缓存数据库的查询结果,减少数据库访问次数,提高动态Web应用的速度和扩展性。

M支持下述语言

wps_clip_image-29334[3][1]

1.2 M的设计

1.2.1 M的机制

守护进程机制:UNIX Daemon;Socket事件处理机制:非阻塞、Libevent异步事件处理、Epoll/Kqueue;内存管理机制:Slab内存分配、LRU对象清除、Hash快速检索Item。

内存管理中,Slab中分成小单位Chunk,Chunk中存有实际数据Item。下述是M的Slab内存结构图和分配实例图。

wps_clip_image-10708[3][1]

Slab内存结构图

wps_clip_image-16413[3][1]

Slab内存分配实例图

wps_clip_image-26154[3][1]

Slab计算占用内存图

wps_clip_image-8825[3][1]

Item数据存储格式图

1.2.2 M的架构设计

M的设计遵从原则是,首次访问从RDBMS中取得数据,按一定规则保存到M后,第二次访问从M中取得数据显示到浏览器页面中。

wps_clip_image-26264[3][1]

M架构层次图

M的服务端并没有分布式功能,各个服务器之间没有互相通信以共享信息。M的分布式完全取决于客户端的实现,如下图所示。

wps_clip_image-25027[3][1]

M使用说明图

如需要在M中保存键名为“tokyo”的数据时,通过客户端应用程序的算法,根据Key来决定选择哪个服务器节点进行存储。服务器选定之后,命令其保存键名“tokyo”和键值“data”。

wps_clip_image-16791[3][1]

Set实例图

如需要在M中获取键名为“tokyo”的数据时。把键名“tokyo”传给客户端函数库,通过和数据保存相同的算法,根据Key选择服务器节点。只要算法一致,就能选对服务器,发送命令取得键值“data”。

wps_clip_image-30287[3][1]

Get实例图

1.3 M的客户端算法

1.3.1 余数分散

根据服务器台数的余数进行分散,求得Key的整数Hash值H,除以服务器的台数N,由余数指向选中服务器,即H%N。

算法的数据分散性比较优秀,但不足的是当添加/移除服务器时(包括服务器Down机事件),缓存重组的代价相当大。因为添加/移除服务器后,余数必定发生改变,客户端在获取数据时,就无法通过算法获取和保存时相同的服务器,严重影响了缓存的命中率。大部分负载会在事件发生的同时,增大数据库的压力。

1.3.2 一致性哈希

一致性哈希算法,Consistent Hashing是一种分布式算法,常用于负载均衡。M 客户端选择这种算法,解决将Key-Value均匀分配到众多M 服务器上的问题。它可以取代传统的取模操作,解决了上述取模操作无法应对增删M 服务器所遇到的问题。… 阅读全文



快乐成长 每天进步一点点