首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

apache 负载均衡_apache部署

一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(Hot Standby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高系统的整体可 第一次看到这个标题时我也很惊讶,Apache居然还能做负载均衡?真是太强大了。经过一番调查后发现的确可以,而且功能一点都不差。这都归功于 mod_proxy 这个模块。不愧是强大的Apache啊。 废话少说,下面就来解释一下负载均衡的设置方法。 一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(Hot Standby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高系统的整体可靠性。 1. 负载均衡的设置 1).基本配置 Apache可以应对上面这两种需求。先来讨论一下如何做负载均衡。假设一台apache服务器域名为www.a.com, 首先需要启用Apache的几个模块: Httpd.conf代码

02

网络四层、七层负载均衡的区别

区别 所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。 以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。

03

针对nginx、haproxy、lvs 的优缺点分析

Nginx的优点:          1.性能好,可以负载超过1万的并发。          2.功能多,除了负载均衡,还能作Web服务器,而且可以通过Geo模块来实现流量分配。          3.社区活跃,第三方补丁和模块很多          4.支持gzip proxy   缺点:           1.不支持session保持。意思是:用户找Nginx请求一个PHP的页面,输入了用户名,密码。接着用户可能又开了一个新窗口,新窗口开了后,还是访问之前个的服务器,此时,Nginx会当成一个新的请求来处理,这样可能会导致请求被分发给其它的后端服务器。因为其不支持session保持           2.对后端realserver的健康检查功能效果不好。而且只支持通过端口来检测,不支持通过url来检测。           3.nginx对big request header的支持不是很好,如果client_header_buffer_size设置的比较小,就会返回400 bad request页面。 Haproxy的优点:          1.它的优点正好可以补充nginx的缺点。支持session保持,同时支持通过获取指定的url来检测后端服务器的状态。          2.支持tcp模式的负载均衡。比如可以给mysql的从服务器集群和邮件服务器做负载均衡。此点相比LVS讲,差一些! 缺点:          1.不支持虚拟主机(这个很傻啊)          2.目前没有nagios和cacti的性能监控模板 LVS的优点:           1.性能好,接近硬件设备的网络吞吐和连接负载能力。           2.LVS的DR模式,支持通过广域网进行负载均衡。这个其他任何负载均衡软件目前都不具备。    缺点:           比较重型。另外社区不如nginx活跃。 -------------------------------------------------------------------------------------------------------- nginx lvs 负载均衡 lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。 首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。 下面来分析一下两者: 一、lvs的优势:    * 1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。    * 2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。    * 3、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种lvs都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体是非常稳定的。    * 4、无流量,上面已经有所提及了。lvs仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。没有流量同时也保住了均衡器的IO性能不会受到大流量的影响。    * 5、基本上能支持所有应用,因为lvs工作在4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库、聊天室等等。 另:lvs也不是完全能判别节点故障的,譬如在wlc分配方式下,集群里有一个节点没有配置VIP,会使整个集群不能使用,这时使用wrr分配方式则会丢掉一台机。目前这个问题还在进一步测试中。所以,用lvs也得多多当心为妙。 二、nginx和lvs作对比的结果    * 1、nginx工作在网络的7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等,相比之下lvs并不具备这样的功能,所以 nginx单凭这点可利用的场合就远多于lvs了;但nginx有用的这些功能使其可调整度要高于lvs,所以经常要去触碰触碰,由lvs的第2条优点看,触碰多了,人为出问题的几率也就会大。    * 2、nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路;lvs就比较依赖于网络环境

03

Nginx反向代理,负载均衡和第三方模块的安装

一.nginx的反向代理 nginx的反向代理就是用户在请求一个nginx的页面的时候可以将请求代理给其它服务器,让其他服务器去处理用户的请求内容。这些服务器把处理的结果教给nginx服务器,然后nginx服务器再把响应的结果发给客户端。nginx的作用主要有2个,一是作为高性能的http的服务器,第二个作用就是作为代理服务器来实现负载均衡的效果,提供更高的并发效果。 首先来看nginx的反向代理功能的配置。实验环境:  1.192.168.1.201作为nginx的代理服务器。  2.192.168.1.202装了一台apache服务器。  实验最终效果:当客户端访问192.168.1.201这台nginx服务器的时候,nginx代理给192.168.1.202这台apache服务器处理用户的请求。由于来访问apache的实际上是nginx服务器,所以apache服务器上的访问日志的客户端IP就一直是nginx服务器的IP。所以还要实现apache日志中的IP仍然是请求的客户端IP。 192.168.1.201上的配置如下:  location / {         proxy_pass http://192.168.1.202;         proxy_set_header client-real-ip $remote_addr       } 192.168.1.202上的配置如下:  DocumentRoot "/html"  LogFormat "%{client-real-ip}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 只需要执行上面基础的配置以后,就可以完成一个简单的反向代理功能了。这里做一点说明:  1.proxy_pass上面如果没有uri的话那么会把location 后面的地址追加到proxy_pass的取值后面。  2.proxy_pass上面如果有uri的话那么会单独的定向到proxy_pass指定的路径地址下。  3.location如果使用了~模式匹配的话,一定不能在proxy_pass的值上更上uri  (注意:这里的uri指的是proxy_pass后面的地址的最后面是否含有'/'来定义的,多测试几下就明白了) nginx的代理不仅仅可以代理web服务,还可以代理图片,css样式给另外一台服务器等。从而实现真正上的动静分离效果 二.nginx负载均衡的配置。实验环境:  1.192.168.1.201做我们的nginx服务器实现负载均衡  2.192.168.1.202和192.168.1.203作为两台提供apache服务的两台服务器 192.168.1.201上的配置如下:  upstream agent {         server 192.168.1.202;         server 192.168.1.203;       }     location / {         proxy_pass http://agent;     proxy_set_header client-real-ip $remote_addr     }       这样一个简单的nginx负载均衡的效果就配置出来了。在浏览器中输入192.168.1.201可以发现被轮询到不同的服务器上去了,而且nginx拥有自动脚本检测的功能。在192.168.1.202上停掉httpd服务器以后,再次刷新会看到只会显示192.168.1.203上面的页面了,重新启动httpd服务以后,又会负载均衡了。

01
领券