Nginx初探

[TOC]

Nginx初探

常见服务器介绍

  • Apache服务器
    开源项目
    优点:在各种开源的WWW服务提供工具中特性最全,运行速度最快,性能相对稳定,扩展功能丰富
    缺点:使用进程为基础的结构。在对一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器
  • Microsoft IIS
    微软公司的Web服务器产品,同Windows Server一起发行。包含Gopher Server、FTP Server,并且可用于HTTP Server、FTP Server、NNTP Server、SMTP Server
    优点:和Windows Server相结合,使网络应用服务器的管理、可用性、可靠性、安全性、性能和可扩展性大大增强
    缺点:付费软件,部署成本高
  • Tomcat服务器
    开源项目,通常作为Apache的扩展部分,为运行JSP页面和Servlet提供服务,独立的Servlet容器是Tomcat的默认模式。它处理静态HTML的能力不如Apache服务器。在中小系统和并发访问用户不是很多的场合下使用,是开发和调试JSP程序的首选。
    优点:开源,体积小,安装部署方便,系统资源占用率低,是主要的Servlet和JSP容器
    缺点:轻量级服务器,无法满足复杂业务场景,也没有负责和丰富的功能
  • Lighttpd服务器
    来自德国的开源轻量级服务器
    优点:专门针对高性能网站,提供了一套安全、快速、兼容性良好并且灵活的Web Server环境。同时,它具有非常低的内存开销、CPU占用率及模块丰富等特点,支持FastCGI、Output Compress、URL重写等绝大多数Apache具有的重要功能,是Apache的绝好替代者
    缺点:Proxy功能支持不完善、对编码支持不完善等

Nginx的功能特性

Nginx服务器以其功能丰富著称于世。既可以作为HTTP服务器,也可以作为反向代理服务器或者邮件服务器;能够快速响应静态页面的请求;支持FastCGO、SSL、Virtual Host、URL Rewrite、HTTP Basic Auth、Gzip等大量使用功能;并且支持第三方功能模块的扩展
Nginx提供的服务:

  1. 基本服务:可以作为HTTP代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持SSL等
  2. 高级服务:可以进行自定义配置,支持虚拟主机,支持URL重定向,支持网络监控,支持流媒体传输等
  3. 邮件代理服务:支持IMAP/POP3代理服务功能,支持内部SMTP代理服务功能

特点:高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署

常用功能介绍

  • 正向代理:
    正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
    正向代理的用途:
    1. 访问原来无法访问的资源,如google
    2. 可以做缓存,加速访问资源
    3. 对客户端访问授权,上网进行认证
    4. 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
  • 反向代理
    反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
    方向代理的用途:
    1. 保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击


      image
    2. 保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击


      image

HTTP代理和反向代理

Nginx服务器转为前端请求性能稳定,并且后端转发与业务配置相互分离,配置相当灵活。它支持判断表达式,通过正则表达式进行相关配置,可以实现根据不同的表达时尚,采取不同的转发策略。其次,它对后端返回情况进行了异常判断,如果返回结果不正常,则请求另一台主机,并且剔除返回异常的主机。还支持错误页面跳转功能

负载均衡

负载均衡,包括两个方面的含义:

  1. 将单一的重负载分担到多个网络节点上做并行处理,每个节点处理结束后将结果汇总返回给用户,这样可以大幅度提高网络系统的处理能力
  2. 将大量的前端并发访问或数据流量分担到多个后端网络节点上分别处理,这样可以有效减少前端用户等待响应的时间。Web服务器、FTP服务器、企业关键应用服务器等网络应用方面谈到的负载均衡问题,基本属于此含义。

Nginx服务器的负载均衡主要是对大量前端访问和流量进行分流,以保证前端用户的访问效率

Nginx服务器的负载均衡策略分为两大类:
内置策略(被编入Nginx内核,只需在Nginx服务器配置中设置参数即可):

  • 轮询策略:将每个前端请求按顺序(时间顺序或者排列顺序)逐一分配到不同的后端节点上,对于出现问题的后端节点自动排除
  • 加权轮训:在基本的轮训策略上考虑后端节点接受请求的权重,指定各个后端节点被轮询到的几率。主要用于后端节点性能不均的情况
  • IP hash:将前端的访问IP进行hash操作,然后根据hash结果将请求分配给不同的后端节点。可看作一种特殊的轮询策略。通过Nginx的实现,每个前端访问IP会固定访问一个后端节点。这样做的好处是避免前端用户的session在后端多个节点上的共享的问题

扩展策略(不会编入Nginx内核,需要手动将第三方内核编译到Nginx内核中)

  • url hash:形式上和IP hash相近,不同点在于IP hash对前端访问IP进行了hash操作,而url hash策略是对前端请求的url进行了hash操作。url hash策略的优点在于,如果后端有缓存服务器,它能够提高缓存效率,同时也解决了session的问题。缺点是如果后端节点出现异常,它不能自动排除该节点。后端节点出现异常会导致Nginx服务器返回503错误
  • fair:Nginx通过后端节点对请求的响应时间判断负载情况,该模块将前端请求转发到一个最近负担最小的后台节点。

Web缓存

Nginx服务器的Web缓存服务主要由Proxy Cache相关指令集和FastCGI_Cache相关指令集构成。Proxy Cache主要用于在Nginx服务器提供反向代理服务时,对后端服务器的返回内容进行URL缓存;FastCGI_Cache主要用于对FastCGI的动态程序进行缓存。
第三方ngx_cache_purge也经常用到,主要用于清除Nginx服务器上指定URL缓存

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335