如何配置Web服务器实现负载均衡
网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。
以四台服务器为例实现负载均衡:
安装配置LVS
1. 安装前准备:
(1)首先说明,LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载状况,调整负载分配策略,充分利用集群环境中的每一台服务器。如下表:
Srv Eth0 Eth0:0 Eth1 Eth1:0
vs1 10.0.0.1 10.0.0.2 192.168.10.1 192.168.10.254
vsbak 10.0.0.3 192.168.10.102
real1 192.168.10.100
real2 192.168.10.101
其中,10.0.0.2是允许用户访问的IP。
(2)这4台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的real1,real2,然后由real1,real2分别处理。
Client为客户端测试机器,可以为任意操作系统。
(3)所有OS为redhat6.2,其中vs1 和vsbak 的核心是2.2.19, 而且patch过ipvs的包, 所有real
server的Subnet mask 都是24位, vs1和vsbak 的10.0.0. 网段是24 位。
2.理解LVS中的相关术语
(1) ipvsadm :ipvsadm是LVS的一个用户界面。在负载均衡器上编译、安装ipvsadm。
(2) 调度算法: LVS的负载均衡器有以下几种调度规则:Round-robin,简称rr;weighted
Round-robin,简称wrr;每个新的连接被轮流指派到每个物理服务器。Least-connected,简称lc;weighted
Least-connected,简称wlc,每个新的连接被分配到负担最小的服务器。
(3) Persistent client
connection,简称pcc,(持续的客户端连接,内核2.2.10版以后才支持)。所有来自同一个IP的客户端将一直连接到同一个物理服务器。超时时间被设置为360秒。Pcc是为https和cookie服务设置的。在这处调度规则下,第一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因为大约有25%的Internet
可能具有相同的IP地址。
(4) Persistent port
connection调度算法:在内核2.2.12版以后,pcc功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演变成为了一个开关选项(你可以让rr、
wrr、lc、wlc具备pcc的属性)。在设置时,如果你没有选择调度算法时,ipvsadm将默认为wlc算法。 在Persistent port
connection(ppc)算法下,连接的指派是基于端口的,例如,来自相同终端的80端口与443端口的请求,将被分配到不同的物理服务器上。不幸的是,如果你需要在的网站上采用cookies时将出问题,因为http是使用80端口,然而cookies需要使用443端口,这种方法下,很可能会出现cookies不正常的情况。
(5)Load Node Feature of Linux Director:让Load balancer 也可以处理users 请求。
(6)IPVS connection synchronization。
(7)ARP Problem of LVS/TUN and LVS/DR:这个问题只在LVS/DR,LVS/TUN 时存在。
3. 配置实例
(1) 需要的软件包和包的安装:
I. piranha-gui-0.4.12-2*.rpm (GUI接口cluster设定工具);
II. piranha-0.4.12-2*.rpm;
III. ipchains-1.3.9-6lp*.rpm (架设NAT)。
取得套件或mount到光盘,进入RPMS目录进行安装:
# rpm -Uvh piranha*
# rpm -Uvh ipchains*
(2) real server群:
真正提供服务的server(如web
server),在NAT形式下是以内部虚拟网域的形式,设定如同一般虚拟网域中Client端使用网域:192.168.10.0/24
架设方式同一般使用虚拟IP之局域网络。
a. 设网卡IP
real1 :192.168.10.100/24
real2 :192.168.10.101/24
b.每台server均将default gateway指向192.168.10.254。
192.168.10.254为该网域唯一对外之信道,设定在virtual server上,使该网域进出均需通过virtual server 。
c.每台server均开启httpd功能供web server服务,可以在各real server上放置不同内容之网页,可由浏览器观察其对各real
server读取网页的情形。
d.每台server都开启rstatd、sshd、rwalld、ruser、rsh、rsync,并且从Vserver上面拿到相同的lvs.conf文件。
(3) virtual server:
作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但因为在NAT型式下必须对进出封包进行改写,所以负担亦重。
a.IP设置:
对外eth0:IP:10.0.0.1 eth0:0 :10.0.0.2
对内eth1:192.168.10.1 eth1:0 :192.168.10.254
NAT形式下仅virtual server有真实IP,real server群则为透过virtual server.
b.设定NAT功能
# echo 1 >; /proc/sys/net/ipv4/ip_forward
# echo 1 >; /proc/sys/net/ipv4/ip_always_defrag
# ipchains -P forward MASQ
c.设定piranha 进入X-window中 (也可以直接编辑/etc/lvs.cf )
a).执行面板系统piranha
b).设定“整体配置”(Global Settings) 主LVS服务器主机IP:10.0.0.2, 选定网络地址翻译(预设) NAT路径名称:
192.168.10.254, NAT 路径装置: eth1:0
c).设定虚拟服务器(Virtual Servers) 添加编辑虚拟服务器部分:(Virtual
Server)名称:(任意取名);应用:http;协议: tcp;连接:80;地址:10.0..0.2;装置:eth0:0; 重入时间:180
(预设);服务延时:10 (预设);加载监控工具:ruptime (预设);调度策略:Weighted least-connections; 持续性:0
(预设); 持续性屏蔽: 255.255.255.255 (预设); 按下激活:实时服务器部分:(Real Servers); 添加编辑:名字:(任意取名);
地址: 192.168.10.100; 权重:1 (预设) 按下激活
另一架real server同上,地址:192.168.10.101。
d). 控制/监控(Controls/Monitoring)
控制:piranha功能的激活与停止,上述内容设定完成后即可按开始键激活piranha.监控器:显示ipvsadm设定之routing table内容
可立即更新或定时更新。
(4)备援主机的设定(HA)
单一virtual server的cluster架构virtual server 负担较大,提供另一主机担任备援,可避免virtual
server的故障而使对外服务工作终止;备份主机随时处于预备状态与virtual server相互侦测
a.备份主机:
eth0: IP 10.0.0.3
eth1: IP 192.168.10.102 同样需安装piranha,ipvsadm,ipchains等套件
b.开启NAT功能(同上面所述)。
c.在virtual server(10.0.0.2)主机上设定。
a).执行piranha冗余度 ;
b).按下“激活冗余度”;
冗余LVS服务器IP: 10.0.0.3;HEARTBEAT间隔(秒数): 2 (预设)
假定在…秒后进入DEAD状态: 5 (预设); HEARTBEAT连接埠: 539 (预设)
c).按下“套用”;
d).至“控制/监控”页,按下“在当前执行层添加PULSE DEAMON” ,按下“开始”;
e).在监控器按下“自动更新”,这样可由窗口中看到ipvsadm所设定的routing table,并且动态显示real
server联机情形,若real server故障,该主机亦会从监视窗口中消失。
d.激活备份主机之pulse daemon (执行# /etc/rc.d/init.d/pulse start)。
至此,HA功能已经激活,备份主机及virtual server由pulse daemon定时相互探询,一但virtual
server故障,备份主机立刻激活代替;至virtual server 正常上线后随即将工作交还virtual server。
LVS测试
经过了上面的配置步骤,现在可以测试LVS了,步骤如下:
1. 分别在vs1,real1,real2上运行/etc/lvs/rc.lvs_dr。注意,real1,real2上面的/etc/lvs
目录是vs2输出的。如果您的NFS配置没有成功,也可以把vs1上/etc/lvs/rc.lvs_dr复制到real1,real2上,然后分别运行。确保real1,real2上面的apache已经启动并且允许telnet。
2. 测试Telnet:从client运行telnet 10.0.0.2,
如果登录后看到如下输出就说明集群已经开始工作了:(假设以guest用户身份登录)
[guest@real1 guest]$——说明已经登录到服务器real1上。
再开启一个telnet窗口,登录后会发现系统提示变为:
[guest@real2 guest]$——说明已经登录到服务器real2上。
3. 测试http:从client运行iexplore http://10.0.0.2
因为在real1 和real2 上面的测试页不同,所以登录几次之后,显示出的页面也会有所不同,这样说明real server 已经在正常工作了。
需要两个关键操作:
1、DNS设置域名指向多个IP轮询
2、程序设置数据库读写分离,然后数据库和网站都放多台服务器。
要求
一台设备用于安装pfSense 2.0(如果这是你的边缘防火墙,我会建议物理机器)。
至少两台Apache2服务器(这些可以是虚拟服务器)。
对Apache服务器进行了配置,以便以某种方式同步Web文件(rsync/corosync或通过Web服务器维持文件版本最新的另一个选项)。
配置pfSense
pfSense使用负载均衡器,将某些类型的流量带来的负载分摊到多台服务器上;如果你有多台服务器用于托管运行应用程序,这很好;你可以将负载分摊到所有服务器上,而不是把负载全扔给一台服务器、导致不堪重负。
可以入手了,先点击“Services”(服务),然后点击“Load Balancers”(负载均衡器),然后点击“Monitor”(监视器)选项卡。
要添加一个新条目,点击“Plus”(添加)按钮,指定“Name”(名称)和“Description”(描述,在这个示例中,我会使用ApacheClusterMon作为名称和描述),将类型设成“HTTP”,然后为“Host”(主机)设置一个未使用的IP地址(我们随后会创建虚拟服务器的IP,以便分配给故障切换服务器组),任由“HTTP Code”(HTTP代码)设成“200 OK”。需要的话,然后点击“Save”(保存),使更改生效。
现在我们要创建服务器池。点击“Pools”(服务器池)选项卡,点击“Plus”(添加)按钮,即可添加新的服务器池。
指定一个名称(ApacheSrvPool将用在我的示例中)。将“Mode”(模式)设成“Load Balance”(负载均衡),然后将“Port”(端口)设成“80”(你可以让pfSense对其他端口上的其他应用程序实现负载均衡),将“Monitor”(监视器)设成你之前创建的监视器配置,并且指定你希望在服务器池中的所有Web服务器的IP地址,需要的话,点击“Save”(保存),使更改生效。
接下来点击“Virtual Servers”(虚拟服务器)选项卡,点击“Plus”(添加)按钮,添加一个新条目。指定“Name”(名称)和“Description”(描述),然后用你之前选择的未使用IP地址来设置“IP Address”(IP地址),将“Port”(端口)设成“80”,然后将“Virtual Server Pool”(虚拟服务器池)设成你之前创建的服务器池,点击“Submit”(提交),使更改生效。
就这样,你刚配置好了pfSense,对你的Web服务器之间的网络流量实现负载均衡。
顺便提一下,如果任何一台服务器没有给出200 OK状态这样的回应(pfSense定期向你的Web服务器发送请求,以确定它们是否正常运行),服务器池就会处于离线停运状态。要避免出现停运,最好的办法就是配置故障切换系统(下一篇文章会有介绍)。
简述iis安装web服务器的步骤?
安装 IIS 功能:在“控制面板”,选择“程序和功能”,然后选择“打开或关闭 Windows 功能”。在弹出窗口中,找到“Internet Information Services”选项,并选择其下的“Web 管理工具”、“World Wide Web 服务”等必要的子选项。单击“确定”按钮并等待安装完成。配置 Web 服务器:打开“Internet ...
安装、配置与管理WEB服务器的具体步骤
亲,您好,很高兴能为您服务!正在为您解答这一道题,您需要耐心等待五分钟左右的时间,答案马上为您揭晓,请不要着急哦!2、最主流的三个Web服务器是Apache、Nginx、IIS。最大的优势就是可靠安全。这里仅仅介绍一些相关的命令。上面这是安装配置管理的具体步骤 这是相关具体步骤的相关图片,希望能帮到...
配置web服务器的步骤
每个人都可拥有自己的免费网站,IT人员教你用电脑搭建web服务器
windows7web服务器怎么配置
3、当web服务器搭建成功后,下一步要做的就是把我们开发的网站安装到Web服务器的目录中,一般情况下,当Web服务器安装完成之后就会创建 路径“%系统根目录%inetpub\/wwwroot”,只要将我们开发的网站复制到该路径下,就可实现本地访问该网站;4、接着设置防火墙,让局域网中的其它计算机也能访问本地网站...
windows下Web服务器配置方法详解
Web服务器又称为WWW服务器,它是放置一般网站的服务器。一台Web服务器上可以建立多个网站,各网站的拥有者只需要把做好的网页和相关文件放置在Web服务器的网站中,其它用户就可以用浏览器访问网站中的网页了。 我们配置Web服务器,就是在服务器上建立网站,并设置好相关的参数,至于网站中的网页应该由网站的维护人员制作...
网站服务器是什么 网站服务器怎么搭建【详解】
摘要:IIS,Internet Information Server,是微软公司推出的Web服务器程序。安装Windows 2000 Server或Windows 2000 Advanced Server时,将自动安装IIS 并建立默认的站点。下面小编主要为您介绍网站服务器的搭建与配置。 【网站服务器】网站服务器是什么 网站服务器的搭建与配置 网站服务器是什么 网站服务器是指在互联网数据...
如何在web服务器部署一个网站
在web服务器部署一个网站的方法 一般在安装操作系统时不默认安装IIS,所以在第一次配置Web服务器时需要安装IIS。安装方法为:1、打开“控制面板”,打开“添加\/删除程序”,弹出“添加\/删除程序”窗口。2、单击窗口中的“添加\/删除Windows组件”图标,弹出“Windows组件向导”对话框。添加\/删除程序 3、...
Tomcat服务器配置
Tomcat服务器配置详解Web服务器主要分为两种架构:C\/S架构(客户端\/服务器)和B\/S架构(浏览器\/服务器)。Web服务器的核心作用是处理客户端的HTTP请求,将静态和动态资源分发给用户。资源分类中,静态资源指的是预先加载到服务器上的文件,如HTML、CSS、图片等;动态资源则是服务器根据用户请求动态生成...
window7系统下配置IIS搭建web服务器的步骤简介
window7系统下配置IIS搭建web服务器的步骤 IIS全名Internet Information Services(IIS,互联网信息服务),在之前的在Windows 2000、Windows XP Professional和Windows Server 2003 都可以配置,现在我们在使用win7系统,由于特定的需要,我们要在win7系统下配置IIS可以吗?没问题windows7同样的也包含了IIS,只需要...
web服务器的工作原理及安装配置步骤
5、关闭文件和网络连接,结束会话。当文件已被发邮或错误已发出后,web服务器结束整个会话。它关闭打开的的被请求文件,关闭网络端口从而结束网络连接。有关的其它工作则是由客户端来完成的,包括接收数据,并以用户可读的方式呈现出来。这些与服务器无关。二、web服务器的安装配置过程 以典型的web服务器...
象明尤斯: 需要两个关键操作:1、DNS设置域名指向多个IP轮询2、程序设置数据库读写分离,然后数据库和网站都放多台服务器.
秦都区14782883910: Java web项目,怎么做负载均衡啊? - ?
象明尤斯: Java web项目负载均衡常用的是nginx.在多个服务器上部署同一个web项目,nginx会将用户的请求随机(可自定义)分发到其中一个web服务器,当其中任意一个或多个web服务器宕机时,不影响用户的正常访问.1、两个web服务器负载均衡...
秦都区14782883910: 如何实现Web服务器和应用服务器的负载均衡??
象明尤斯: 您可以采用多网卡多线接入,通过nic express等软件来实现负载均衡! 祝您成功!
秦都区14782883910: 实现服务器负载均衡有多种方法,常见的方法有 - ?
象明尤斯: 最常见的一种方法,是在同一个机房的同一机柜上面租用多台机器.并把网站的数据库和页面分开.把数据库放在单独的一台高配置服务器上面.把网站前端页面复制成多份.放在不同的其他几台机器上面.然后用DNSPOD解析.把一个域名解析指向多个不同服务器的...
秦都区14782883910: 如何配置Windows的网络负载平衡 - ?
象明尤斯: 配置方法如下:1,给2台WEB服务器装置NLB,以后在其间恣意一台上来新建群集,然后将别的一台加入到这个群会集即可,并保证这2台服务器都是运用的静态IP. 2,在web-01(192.168.1.130)上从管理工具中翻开 网络负载均衡器,右击“网...
秦都区14782883910: 如何才能让两台sql server 2005服务器负载均衡 - ?
象明尤斯: 您好,很高兴为您解答.1、企业实现Web服务器负载均衡为了将负载均匀的分配给内部的多个服务器上,就需要应用一定的负载均衡策略.通过服务器负载均衡设备实现各服务器群的流量动态负载均衡,并互为冗余备份.并要求新系统应有一...
秦都区14782883910: 我用nginx配置webservice负载均衡,怎么弄 - ?
象明尤斯: 简单的负载均衡配置 upstream backend { server backend1.example.com weight=5;#weight权重,权重越高发送到此台服务器的请求概率越大 server backend2.example.com:8080; server backup1.example.com:8080 backup;#backup备份服务器,只有在非backup服务器都不能访问时才会向此服务器分流
秦都区14782883910: 服务器如何实现集群和负载均衡 - ?
象明尤斯: 你可以直接买一台负载均衡交换机啊,何必要浪费1台服务器呢.2 应该是每台都会有一个IP地址 外网 访问连接到的那个IP地址 是你的负载均衡交换机的IP地址 他随机把你的访问请求分配到你的3台服务器上3 无主从关系,负载均衡交换机它会没2秒左右向你的服务器发送一个健康检查,如果发现你的服务器出现问题,它会自动屏蔽你这台服务器4 你问的重复问题.
秦都区14782883910: 怎么让两个服务器负载均衡??
象明尤斯: 很多方法可以实现,比如说系统自带的网络负载均衡也就是我们常说的NLB 如果有条件也可以考虑服务器集群!的搭建,不过服务器集群的搭建相对来说比较复杂!你要做的只是WEB服务器,那我建议你使用网络负载均衡.