006 nginx集群-尊龙官方平台

006 nginx集群

el/2024/3/25 17:39:15

学nginx集群之前要先搞明白负载均衡是怎样分层的,我个人总结的经验是层数越靠上性能必须越高。如图所示,客户的请求由一台lvs服务器转发到nginx服务器1~3,这样能减轻nginx服务器1~3的压力,但是所有的请求都会经过lvs服务器,所以lvs的性能必须比nginx的性能要好,否则它也扛不住。

如果lvs单点也扛不住怎么办,就搞lvs集群,lvs集群前面必然还会有一层负载均衡,就是硬件负载均衡f5(貌似可以抗住5亿的并发),当然lvs也可以和f5属于同一层的负载均衡,就看你们怎么设计。

如果单点f5也扛不住,就加上dns解析,一个ip对应一个f5,搞一个f5集群,不过f5挺贵的,一台十来万,小公司买不起。

总归就是上层负载均衡必须要比下层负载均衡性能要好,否则扛不住。

 

基于四层交换技术的负载均衡是通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端建立tcp连接,然后发送client请求的数据。如下图:

client发送请求至4层负载均衡器,4层负载均衡器根据负载策略把client发送的报文目标地址(原来是负载均衡设备的ip地址)修改为后端服务器(可以是web服务器、邮件服务等)ip地址,这样client就可以直接跟后端服务器建立tcp连接并发送数据。

具有代表意义的产品:lvs(开源软件),f5(硬件)

优点:性能高、支持各种网络协议

缺点:对网络依赖较大,负载智能化方面没有7层负载好(比如不支持对url个性化负载),f5硬件性能很高但成本也高需要人民币几十万,对于小公司就望而却步了。

 

基于七层交换技术的负载均衡也称内容交换,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的服务器。如下图:

七层负载均衡服务器起了一个代理服务器的作用,client要访问webserver要先与七层负载设备进行三次握手后建立tcp连接,把要访问的报文信息发送给七层负载均衡;然后七层负载均衡再根据设置的均衡规则选择特定的webserver,然后通过三次握手与此台webserver建立tcp连接,然后webserver把需要的数据发送给七层负载均衡设备,负载均衡设备再把数据发送给client。

具有代表意义的产品:nginx(软件)、apache(软件)

优点:对网络依赖少,负载智能方案多(比如可根据不同的url进行负载)

缺点:网络协议有限,nginx和apache支持http负载,性能没有4层负载高

确定使用四层 七层负载结合方案:四层负载使用lvs软件或f5硬件实现,七层负载使用nginx实现,如下图是lvs nginx的拓扑结构:


http://www.ngui.cc/el/5127324.html

相关文章

007 nginx限制访问频率

nginx对于预防一些攻击也是很有效的,例如cc攻击,爬虫,本文将介绍限制这些攻击的方法,可以使用nginx的ngx_http_limit_conn_module、ngx_http_limit_req_module这两个模块达到目的,该模块为nginx内置模块,yu…

008 nginx内置变量

内置变量存放在 ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的。总而言之,这些变量代表着客户端请求头的内容,例如$http_user_agent, $http_cookie, 等等。下面是nginx支持的所有内置变量: $arg_name…

001 什么是maven以及搭建maven

安装meaven 所需工具 : jdk 1.8 maven 3.3.3 windows 7及以上 访问 maven官方网站,打开后找到下载链接,如下http://maven.apache.org/download.cgi 他就像tomcat一样并不是安装的,解压在某一个盘符下就好 添加 m2_home 和 maven…

002 用maven构建一个hello world

按照maven标准结构创建目录,在java里创建model包,在里面编写有返回返回hello word的方法的类,在test里创建一模一样的包和一个junit的测试类 pom.xml文件与src目录同级,都处于项目的根目录 文件内容为: package mode…

有效括号与单向链表中间节点

今天去面试,笔试题刚好是“有效括号”与“单向链表中间节点”,第一个问题用堆栈就可以解决,第二个问题就用单向列表 题目:有效括号 给定一个只包括 (,),{,},[,] 的字符串…

003 maven常用构建命令

其他的一些常用命令: mvn site 生成项目相关信息的网站 mvn clean 清除目标目录中的生成结果,就是删除target mvn package 依据项目生成jar文件,打包之前会进行编译,测试。 mvn install 将某个项目生成的jar包安装到本地仓库中,…

004 maven自动建立项目骨架

每一次手动创建目录真的是很麻烦。。。懒人改变世界 执行下列命令即可创建负责maven规定的骨架 mvn archetype:generate 这种方式需要在后续执行力填写信息或者下面这种一口气就填写完信息的mvn archetype:generate -dgroupid组织名,公司网址的反写项目名 -dartif…

005 maven中的坐标和仓库,修改为阿里maven仓库

在maven中任何一个依赖、插件、项目构建的输出都被称之为构件,所有的构件都通过坐标作为其唯一的标识。我们就是在pom.xml文件里通过坐标声明所依赖的jar包 这么多的构件是存储在仓库中的,仓库分为远程仓库和本地仓库,远程仓库还分为apache的…

006 在eclipse创建maven项目

myeclipse和eclipse4及以上不需要安装maven插件。其余的需要安装maven插件才可以创建maven项目。 jdk版本至少要1.8,并且配置过m2_home环境变量,为该jdk添加下列内容 -dmaven.multimoduleprojectdirectory$m2_home (如下图右边所示&…

007 maven的生命周期

这三套生命周期是相互独立的,生命周期又包含一些阶段,各个生命周期的阶段是有顺序的,每一个阶段都是依赖于前面的阶段。 clean的三个阶段 default的常用阶段:
网站地图