`
jja1982
  • 浏览: 112450 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Nginx学习(三)应用

 
阅读更多
负载均衡
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无需其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接受到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器阵列,藉此快速获取重要数据,解决大量并发访问服务问题。这种集群技术可以用最少的投资获得接近于大型主机的性能。

反向代理
反向代理(Reverse Proxy)是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结构返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

常见的Web负载均衡方法
1. 用户手动选择方式
这是一种较为古老的方式,通过在主站首页入口提供不同线路、不同服务器链接的方式,来实现负载均衡。这种方式在一些提供下载业务的网站中比较常见,例如:华军软件园。

2. DNS轮询方式
大多域名注册商都支持对同一主机名添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡。
DNS轮询的成本非常低,在一些不重要的服务商,被经常使用。
虽然DNS轮询成本低廉,但是,DNS负载均衡存在两个明显的缺点
1)可靠性低。
2)负载分配不均衡。

3. 四/七层负载均衡设备
由于DNS轮询的缺点,一些对可靠性要求较高的服务器集群,则通过采用四/七层负载均衡设备来实现服务器的负载均衡。
现代负载均衡技术通常操作与OSI网络模型的第四层或第七层。第四层负载均衡将一个Internet上合法注册的IP地址映射为多个内部服务器的IP地址,对每个TCP连接请求动态使用其中一个内部IP地址,达到负载均衡的目的。在第四层交换机中,此种均衡技术得到广泛的应用,一个目标地址是服务器群VIP(虚拟IP,Virtual IP address)连接请求的数据包流经交换机。交换机根据源端和目的IP地址、TCP或UDP端口号和一定的负载均衡策略,在服务器IP和VIP间进行映射,选取服务器群中最好的服务器来处理连接请求。
第七层负载均衡控制应用层服务的内容,提供了一种对访问流量的高层控制方式,适合对HTTP服务器群的应用。第七层负载均衡技术通过检查流经的HTTP报头,根据报头内的信息来执行负载均衡任务。
常见的四/七层负载均衡均衡设备
1)硬件四/七层负载均衡交换机:F5 BIG-IP、Citrix NetScaler、Radware、Cisco CSS、Foundry等产品,这些产品价格不菲,高达几十万元人民币。
2)软件四层负载均衡
软件四层负载均衡的代表作品为LVS(Linux Virtual Server)。
3)软件七层负载均衡
软件的七层负载均衡大多基于HTTP反向代理方式,代表产品有Nginx、L7SW(Layer7 switching)、HAProxy等。

4)多线多地区智能DNS解析与混合负载均衡方式
以新浪首页(www.sina.com.cn)为例,负载均衡同时用到了“多线多地区智能DNS解析、DNS轮询、四/七层负载均衡交换机”等技术。智能DNS解析能够根据用户本地设置的DSN服务器线路和地区,将对同一个域名请求解析到不同的IP上。

OSI七层协议
1)物理层
物理层包括物理联网媒介,实际上就布线、光纤、网卡和其他用来把两台网络通讯设备连接在一起的设施。它规定了激活、维持、关闭通讯端点之间的机械特征、电气特征、功能特性及过程特性。虽然物理层不提供纠错服务,但它能够设定数据传输速率并检测数据出错率。

2)数据链路层
数据链路层的主要作用是控制网络层与物理层之间的通讯。它保证了数据在不可靠物理线路上进行可靠的传递。它把从网络层接收到的数据分割成特定的可被物理层传输的帧,保证了传输的可靠性。它的主要作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。它是独立于网络层和物理层的,工作时无需关心计算机是否正在运行软件还是其他操作。
数据链路层协议的主要内容包括:SDLC、HDLC、PPP、STP、帧中继等。

3)网络层
很多用户经常混淆第二层和第三层的界限,简单来说,如果你在讨论一个与IP地址、路由协议或地址解析协议(ARP)相关的问题,那么这就是第三层的问题。
网络层负责对子网间的数据包进行路由选择,它通过综合考虑发送优先权、网络拥塞程度、服务质量及可选路由的花费来决定一个网络中两个节点的最佳路径。另外,它还可以实现拥塞控制、网际互联等功能。
网络层协议的主要内容包括:IP、IPX、RIP、OSPF等

4)传输层
传输层是OSI模型中最重要的一层,它是两台计算机经过网络进行数据通讯时,第一个端到端的层次,起到缓冲作用。当网络层的服务质量不能满足要求时,它将提高服务,以满足高层的要求;而当网络层服务质量较好时,它只须进行很少的工作。另外,它还要处理端到端的差错控制和流量控制等问题,最终为会话提供可靠的、无误的数据传输。
传输层协议的主要内容包括:TCP、UDP、SPX等。
在IP协议栈中第四层是TCP(传输控制协议)和UPD(用户数据报协议)所在的协议层。TCP和UDP包含端口号。它可以唯一区分每个数据包包含哪些应用协议(例如HTTP、FTP、telnet等)。TCP/UDP端口号提供的附加信息可以为网络交换机所利用,四层交换机利用这种信息来区分包中的数据,这是第四层交换的基础。

5)会话层
会话层负责在网络中的两节点之间建立和维持通讯,并保持会话同步,他还决定通讯是否中断,以及通讯中断时决定从何处重行发送。

6)表示层
表示层的作用是管理数据的解密与加密,如常见的系统口令处理,当你的账号数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。另外,表示层还要对图片和文件格式信息进行解码和编码。

7)应用层
简单来说,应用层就是为操作系统或网络应用程序提供访问网络服务的接口,包括文件传输、文件管理及电子邮件等的信息处理。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

Nginx负载均衡服务器的双机高可用
双机高可用一般是通过虚拟IP(也成偏移IP)方式来实现的,基于Linux/Unix的IP别名技术。双机高可用方式目前可分为两种:第一种方式为一台主服务器加一台热备服务器,正常情况下主服务器绑定一个公网虚拟IP,提供负载均衡服务,热备服务器处于空闲状态,当主服务器发生故障时,热备服务器接管主服务器的虚拟IP,提供负载均衡服务;第二种方式为两台负载均衡服务器都处于活动能够状态,各自绑定一个公网虚拟IP,提供负载均衡服务,当其中一台服务器发生故障时,另一台服务器接管发生故障服务器的虚拟IP。第一种方式较为常见,但始终有一台服务器出于空闲状态,浪费了一台服务器的负载均衡处理能力。第二种方式需要多用一个公网IP。

Nginx模块
Ngnix所有的模块都要预先编译进Nginx的二进制可执行文件中。
Nginx模块有三种角色
1)Handlers(处理模块)---用于处理HTTP请求并输出内容
2)Filters(过滤模块)---用于过滤Handler输出的内容
3)Load-balancers(负载均衡模块)---当有多于一台的后端服务器供选择时,选择一台后端服务器并将HTTP请求转发到该服务器上。
Nginx模块的处理流程
客户端发送HTTP请求到Nginx服务器->Nginx基于配置文件中的文字选择一个合适的处理模块->负载均衡模块选择一台后端服务器(反向代理情况下)->处理模块进行处理并把输出缓冲放到第一个过滤模块上->第一个过滤模块处理后输出到第二个过滤模块->然后第二个过滤模块又到第三个过滤模块->第N个过滤模块->最后把处理结果发送给客户端。

Web缓存
Web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容到客户端,而不是源服务器再次发送请求。Web缓存降低了内容源Web服务器、数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了用户体验。
Web缓存服务器中,最最著名的要数Squid Cache(简称为Squid),已经在大多数网站中使用。Squid是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网、域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
分享到:
评论

相关推荐

    Nginx全套学习指南

    第1章 Nginx简介 ...第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的非典型应用实例 第12章 Nginx的核心模块 第13章 Nginx的标准HTTP模块 第14章 Nginx的其他HTTP模块 第15章 Nginx的邮件模块

    Nginx学习丛书 Nginx应用与提高

    由于网上的书籍较少,所以搜索了一下个人觉得不错的教材,希望大家喜欢!

    Nginx 常见应用技术指南

    Nginx 常见应用技术指南,由于是自己下载别人的,所以大家可以从里面找到具体的资源地址,方便学习!

    Nginx常见应用技术指南(nginx-tips)

    Nginx常见应用技术指南(nginx-tips),常见故障的排除。

    淘宝网Nginx应用、定制与开发实战.pdf[书签版]

    警告:本资源教程仅用于技术交流、学习。下载阅读后请自行删除,一切涉及版权、商务因素引起的纠纷由肇事者自行承担。 本资源是 PDF 电子书格式,大小 1.2 MB,带有书签方便读者朋友阅读。 内容预览: 大纲 1、背景...

    Nginx学习笔记

    Nginx是一个开源的,支持高性能、高并发的www服务和代理服务软件,由俄罗斯人IgorSyoer开发的,最初被应用在俄罗斯的大型网站www.rambler.ru上,后来作者将源代码以类BSD许可的形式开源出来供全球使用

    企业级应用Nginx配置案例

    这是个人工作中总结的一些企业级应用Nginx配置的案例,供各位Nginx学习中参考使用!

    高性能Web服务器Nginx及相关新技术的应用实践

    高性能Web服务器Nginx及相关新技术的应用实践,csdn大会上的PPT,内容通俗易懂,是入门的比较好的学习材料!

    nginx+lua简要说明

    而目前市面上用的非常成熟的扩展是由章亦春将Lua和Nginx粘合的ngx_lua模块,并且将Nginx核心、LuaJIT、ngx_lua模块、许多有用的Lua库和常用的第三方Nginx模块组合在一起成为OpenResty,这样开发人员就可以安装...

    Nginx技术的学习 加油

    虚拟主机和代理: 解释如何配置虚拟主机和使用Nginx作为反向代理服务器,以提高应用性能。 负载均衡: 探讨Nginx如何实现负载均衡,分担流量以确保系统的高可用性和稳定性。 安全性配置: 提供有关如何通过Nginx...

    Nginx Rewrite模块应用的几种场景

    主要介绍了Nginx Rewrite模块应用的几种场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Nginx:取代apache的高性能服务器

    第3部分为实战篇,分析了Nginx在国内知名网站(如新浪播客、搜狐博客等)中的应用案例;第4部分为模块篇,对Nginx的基本模块和第三方模块进行了集中介绍。, 本书是为对配置管理Nginx服务器感兴趣的读者准备的,适用...

    Nginx rewrite跳转应用场景详解

    主要介绍了Nginx rewrite跳转应用场景详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Nginx反向代理服务器快速入门视频教程课件

    Nginx是一款轻量级的Web 服务器/反向代理...本课程全面讲授Nginx的配置与使用、企业应用实践(静态代理、负债均衡、动静分离、虚拟主机等),学习本课程,可以快速地掌握Nginx这样一款高性能的web反向代理服务器。

    Nginx开发从入门到精通

    掌握Nginx不仅能够提高Web应用程序的性能和可靠性,还能够帮助我们更好地管理和维护网站服务器。 Nginx开发从入门到精通,需要循序渐进地学习和掌握以下几个方面的知识: 1. Nginx基础知识:了解Nginx的安装、配置和...

    docker + nginx.pptx

    docker 安装应用 使用doker安装NGINX 相关配置 部署讲解以及常用命令使用 等学习资料或者公使用

    Nginx学习

    Nginx学习应用Nginx简介与其它web服务器的对比Nginx环境搭建下载官网 [http://nginx.org](http://nginx.org) 下载Stable version 稳定版安装Linux安装安装后的文件说明Windows安装启动关闭配置检查其它Nginx配置文件...

    nginx-web服务器

    nginx1.7稳定版 nginx由俄罗斯程序员开发并应用在大型多并发门户网站(腾讯新浪等),有一定的学习价值。

    Nginx在CentOS6.6下编译安装学习应用_宋利春_2015.11.18

    Nginx在CentOS6.6下编译安装学习应用,简单整理了一下,供大家学习参考

Global site tag (gtag.js) - Google Analytics