版权声明:本文为yunshuxueyuan原创文章。
如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667
LVS负载均衡
1. 基本介绍
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。
LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上。为了避免不同机器上用户请求得到的数据不一样,需要用到了共享存储,这样保证所有用户请求的数据是一样的。
2. Lvs的组成:
LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。
1. ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
2. ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)
3. Lvs配置步骤:
a. 准备好3台虚拟机,配置ip在同一网段
b. 配置lvs的VIP
c. 调整后端真实server的响应,通告级别(每一台)
d. 调整后端真实server的VIP(每一台)
e. 启动真实server上的httpd服务,并编写欢迎页面
f. 在LVS主机器上安装ipvsadm,并配置
g. 保存规则:
h. 载入此前规则:
KEEPALIVED高可用
1. 定义
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。Keepalived是VRRP的完美实现。
2. 安装配置:
NGINX
1. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2. 安装:
a. 下载源码包
b. 解压缩:tar xf filename
c. ./configure
检查操作系统
检查编译环境
yum install gcc
pcre 依赖库
yum search pcre
yum install pcre-devel
openssl
yum install opssl-devel
./configure --help
./configure --prefix=/opt/sxt/nginx
d. make && make install
3. 添加tengine到注册表,将下面文件中的代码,拷贝到/etc/init.d/nginx中;然后就可以使用service命令了
4. 配置:
a. 文件结构
全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由,以及各种页面的处理情况。
b. 配置文件示例:
c. location匹配规则:
先普通
顺序无关
最大前缀
匹配规则简单
打断:
^~
完全匹配
再正则
不完全匹配
正则特殊性:一条URI可以和多条location匹配上
有顺序的
先匹配,先应用,即时退出匹配
5. session共享及一致性解决方案:
a. memcached缓存服务,可以和tomcat整合
b. 安装memcached
yum install memcached –y
c. 启动memcached
memcached -d -m 128m -p 11211 -l 192.168.122.111 -u root -P /tmp/
d. 拷贝memcached相关jar包到tomcat的lib下
e. 配置tomcat,每个tomcat里面的context.xml中加入
版权声明:本文为yunshuxueyuan原创文章。
如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667