【ch10】高性能Web服务器-NGINX_第1页
【ch10】高性能Web服务器-NGINX_第2页
【ch10】高性能Web服务器-NGINX_第3页
【ch10】高性能Web服务器-NGINX_第4页
【ch10】高性能Web服务器-NGINX_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高性能Web服务器——NGINXLinux服务器安全管理高级运维项目10“十四五”高等教育网络空间安全产业人才培养系列丛书“互联网+”新形态立体化一体精品教材+NGINX01NGINX的组成与工作原理从文件上看,NGINX的组成包括4部分:二进制可执行文件、配置文件、访问日志和错误日志。这4部分是相辅相成的,NGINX的二进制可执行文件和配置文件定义了NGINX处理请求的方式。如果想对Web服务进行运营或运维的分析,则需要对access.log访问日志做进一步分析。当出现任何未知的错误或与预期的行为不一致时,可以通过error.log错误信息定位根本问题。(1)二进制可执行文件。这是由NGINX自身的核心框架、官方模块及编译时添加的各种第三方模块共同构建而成的。这个文件相当于汽车本身,它有完整的系统,可提供所有功能。这些模块可最终编译成一个二进制可执行文件,让NGINX正常地运行。(2)nginx.conf配置文件。NGINX运行时的各种功能可以由用户根据自己的需求进行定制。用户只需按照一定的语法规则编写NGINX的配置文件,即可配置NGINX的各种功能。(3)access.log访问日志。访问日志记录了所有NIGNX接受访问的HTTP请求信息和响应信息。(4)error.log错误日志。错误信息记录了NGINX在运行过程中出现的不可预知的错误,以便定位问题。NGINX的组成与工作原理从模块结构上看,NGINX分为核心模块、基础模块和第三方模块。(1)核心模块:HTTP模块、EVENT模块和MAIL模块。(2)基础模块:HTTPAccess模块、HTTPFastCGI模块、HTTPProxy模块和HTTPRewrite模块。(3)第三方模块:HTTPUpstreamRequestHash模块、Notice模块和HTTPAccessKey模块。NGINX的模块如图10-1所示。NGINX的组成与工作原理从模块功能上看,NGINX分为处理器模块、过滤器模块和代理类模块。(1)处理器(Handlers)模块:此类模块可以直接处理请求,并进行输出内容和修改headers信息等操作。处理器模块一般只能有一个。(2)过滤器(Filters)模块:此类模块主要对其他处理器模块输出的内容进行修改,最后由NGINX进行输出。(3)代理类(Proxies)模块:此类模块是NGINX的HTTPUpstream类模块,主要与后端一些服务(如FastCGI等)进行交互,实现服务代理和负载均衡等功能。NGINX以守护进程的形式在后台运行,采用多线程和异步非阻塞I/O事件模型来处理各种请求。多线程模型包括一个Master进程,多个Worker进程。一般,Worker进程的数量由服务器的CPU核数决定。Master进程负责管理NGINX本身和其他Worker进程,其功能如下。(1)对外接口:接收外部的操作(信号)。(2)对内转发:根据外部操作的不同,通过信号管理Worker。(3)监控:监控Worker进程的运行状态。当Worker进程异常终止后,将自动重新启动Worker进程。NGINX的性能优势体现在多个方面,主要表现为以下几点。(1)作为Web服务器,NGINX处理静态文件、索引文件及自动索引的效率非常高。(2)作为代理服务器,NGINX可以实现无缓存的反向代理加速,从而提高网站运行速度。(3)作为负载均衡服务器,NGINX既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外提供服务,还支持简单的容错和利用算法进行负载均衡。在性能方面,NGINX是专门为性能优化而开发的,在实现上非常注重效率。它采用内核Poll模型,支持更多的并发连接,最大可以响应5万个并发连接,而且只占用很少的内存资源。在稳定性方面,NGINX采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。NGINX官方表示,NGINX可以保持1万个空闲连接,而这些连接只占用2.5MB内存。因此,DOS类的攻击对NGINX来说基本上没有任何作用。在高可用性方面,NGINX支持热部署,启动速度极快,因此可以在持续服务的情况下进行软件版本或配置升级,即使运行数月也无须重新启动,几乎可以实现7×24小时不间断运行。与传统的Web服务器相比,NGINX在反向代理、Rewrite规则、稳定性、静态文件处理及内存消耗等方面具有明显的优势。通过使用NGINX替代传统的Apache服务器,可以获得全方位的性能提升。NGINX的性能优势+NGINX的安装与配置02NGINX的快速安装可以从NGINX官网下载NGINX。该官网提供了NGINX主线版本和NGINX稳定版本。这两种版本非常稳定,都可以用于构建生产环境的NGINX。NGINX主线版本包含所有活跃的开发内容。这意味着所有新功能和非关键错误修复都在这里进行开发,但有时这也可能导致某些第三方模块因内部API的更改而中断。NGINX稳定版本仅包含关键错误修复,不包含新功能和非关键错误修复。在安装完NGINX后,需要对其进行相应的配置与调试。下面详细介绍配置与调试NGINX的方法。NGINX的配置文件是一个纯文本文件,一般位于NGINX安装目录的conf目录下,整个配置文件是以block的形式组织的。每个block一般使用一个大括号“{}”来表示。block可以分为不同层。在整个配置文件中,Main命令位于最高层,下面可以有Events等层,而这些层中又包含Server层,即serverblock。serverblock中又可以包含location层,并且一个serverblock中可以包含多个locationblock。在不同安装方式下,NGINX的文件存放路径也有所不同。如果采用源码编译安装方式,则配置文件在安装目录下的conf目录下。例如,如果安装目录是/usr/local/nginx,则配置文件在/usr/local/nginx/conf目录下。如果采用yum源安装方式,则配置文件在/etc/nginx/目录(该目录下存放的是主配置文件)和/etc/nginx/conf.d目录下。NGINX的配置与调试NGINX配置文件主要分为以下4部分。(1)main(全局设置)。(2)server(主机设置)。(3)upstream(负载均衡服务器设置)。(4)location(URL匹配特定位置设置)。NGINX配置文件的结构如图10-2所示。NGINX的配置与调试其中,main部分的指令将影响其他设置;server部分的指令主要用于指定主机和端口;upstream部分的指令主要用于进行负载均衡,设置一系列的后端服务器;location部分的指令主要用于匹配网页位置。这4者之间的继承关系如下。server继承main;location继承server;而upstream既不会继承其他设置,也不会被继承。NGINX的配置与调试NGINX的日常维护技巧在安装及使用NGINX后,需要定期进行日常维护及检查,以确保其正常运行及使用。NGINX提供了配置文件调试功能,可以快速发现配置文件存在的问题。执行如下命令可以检测配置文件的正确性:或者把nginx命令的路径写入PATH,这样在执行nginx命令时就不需要写绝对路径:使用-t命令可以检查配置文件的语法是否正确。NGINX的日常维护技巧使用-c命令可以制定NGINX配置文件的路径,默认为/usr/local/nginx/conf/nginx.conf。另外,NGINX也提供了查看版本信息和相关编译信息的功能。查看版本信息:查看相关编译信息:+NGINX常用功能03NGINX的反向代理应用实例01使用NGINX反向代理,根据访问的路径跳转到不同端口的服务上NGINX监听端口为9001。访问29:9001/edu/将直接跳转到:8080上。访问29:9001/vod/将直接跳转到:8081上。02准备工作首先准备两个Tomcat服务器,一个端口为8080,另一个端口为8081。在Tomcat的webapps目录中创建文件夹和测试页面。NGINX的反向代理应用实例03具体配置在nginx.conf配置文件中进行反向代理配置。在http块中添加server{},如图10-3所示。以下为location指令说明。=:在不含正则表达式的URL前,要求请求字符串严格匹配该URL。如果匹配成功,则立即停止继续向下搜索并处理该请求。~:用于表示URL包含正则表达式,并且区分大小写。~*:用于表示URL包含正则表达式,并且不区分大小写。^~:用于表示URL不包含正则表达式,并且区分大小写。在NGINX服务器中,当匹配到^~标识的URL时,表示该URL的匹配度最高。注意:如果URL包含正则表达式,则必须有~或~*标识。NGINX的反向代理应用实例04进行测试开放对外访问的端口号为9001、8080和8081。测试结果显示,当访问29:9001/edu/时,最终直接跳转到:8080上,如图10-4和图10-5所示。NGINX的URL重写应用实例NGINX的URL重写也被称为Rewrite,主要作用是当客户端访问特定URL时,根据客户端的访问信息跳转到其他URL上。URL重写在现在的网站中经常出现,其作用具体如下。(1)对搜索引擎的访问进行优化,有助于搜索引擎抓取页面。(2)隐藏站点的真实URL地址,使URL更加简洁。(3)当网站升级时,通过URL重写功能,可以将网站重定向到其他页面。(4)当手机和计算机访问同一站点时,反馈不同的页面,以便根据设备的不同分辨率优化网站页面,使其更加美观。NGINX的Rewrite功能在企业中应用非常广泛,它可以调整用户浏览的URL,使其看起来更规范,符合开发人员及产品人员的需求。为了提高搜索引擎对网站内容的收录并改善用户体验,企业会将动态URL地址伪装成静态地址,以提供服务。当网址更换新域名后,会将旧的访问跳转到新的域名上。使用者可以根据特殊变量、目录、客户端的信息调整URL等。NGINX的URL重写应用实例NGINX配置Rewrite的过程如下。(1)创建Rewrite语句。文件内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论