一. nginx功能概述

  nginx 提供的基本功能服务归纳为:基本HTTP服务、高级HTTTP服务、邮件代理服务、TCP/UDP 代理服务等四大类。

  (1) Nginx提供基本HTTP服务,可以作为HTTP代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持SSL等。

  (2) Nginx提供高级HTTP服务,可以进行自定义配置,支持虚拟主机,支持URL重定向,支持网络监控,支持流媒体传输等。

  (3) Nginx 作为邮件代理服务器是最早开发这个产品的目的之一,它支持IMAP/POP3代理服务功能,支持内容SMTP代理服务功能。

  1.1 基本HTTP服务

    (1) 处理静态文件(如HTML静态网页及请求),处理索引文件以及支持自动索引。

    (2) 打开并自行管理文件描述符缓存。

    (3) 提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单负载均衡和容错。

    (4) 提供远程FastCGI服务的缓存机制,加速访问,同时完成简单的负载均衡和容错。

    (5) 使用Nginx的模块化特性提供过滤器功能,Nginx基本过滤器包括Gzip压缩、rgnges支持、chunked响应、XSLT、SSL以有图像缩放等。

    (6) 支持HTTP下的安全套接层安全协议SSL。

1.2 高级http服务

    (1) 支持基于名字和IP的虚拟主机设置。

    (2) 支持http的Keep-alive模式和管线Pipelined模型连接。

    (3) 支持重新加载配置以及在线升级时,无须中断中在处理的请求。

    (4) 自定义访问日志格式、带缓存的日志写操作以及快速日志轮转和syslog日志记录。

    (5) 提供http状态3xx~5xx错误代码重定向功能。

    (6) 支持重写(Rewrite)模式扩展,使用正则表达式更改URL。

    (7) 支持HTTP dav模块,为http webdav 提供put、DELETE、MKCOL、COPY、MOVE方法。

    (8) 支持FLV流和MP4流传输。

    (9) 支持网络监控,包括基于客户端IP地址和HTTP基本认证的访问控制、速度限制、来自同一地址的同时连接数或请求数限制等。

    (10) 支持嵌入Perl语言。

    (11) njs脚本语言。

  1.3 邮件代理服务

    (1) 支持使用外部HTTP认证服务器重定向 用户到IAMP/POP3后端,并支持IMAP认证方式和POP3认证方式。

    (2) 支持使用外部HTTP认证服务器认证用户后 重定向连接到内部SMTP后端,并支持SMTP认证方式。

    (3) 支持邮件代理服务下的安全套接层安全协议SSL。

    (4) 支持纯文本通信协议的扩展协议starttls。

  1.4  TCP/UDP代理服务器功能

    (1) TCP/UDP的通用代理。

    (2) SSL和TLS SNI 支持TCP。

    (3) 负载均衡和容错。

    (4) 基于客户端地址的访问控制。

    (5) 根据客户端地址执行不同的功能。

    (6) 限制来自同一个ip地址的同时连接数。

    (7) 自定义访问日志格式、带缓存的日志写操作以及快速日志轮转和syslog日志记录。

    (8) 基于IP的地理定位。

    (9)  njs脚本语言。

二.常用功能介绍

  2.1 HTTP代理和反向代理

    代理服务和反向代理是Nginx服务器作为Web服务器的主要功能之一,尤其是反向代理应用广泛。Nginx服务器转发来自前端的请求,性能稳定而且后端转发与业务配置相互分离,配置灵活。在后端转换请求完全不用关心网络环境如何,可以指定任意的ip和port或其他类型链接请求等。

    通过正则表达式进行相关配置,可以实现根据不同的表达式,采取不同的转发策略,并且对后端异常判断则重新转向另一后端ip。

  2.2 负载均衡

    一般来说负载均衡是将大量前端并发访问或数据流量分担到多个后端网络节点上分别处理,这样可有效减少前端用户等待响应的时间。对于Nginx负载策略可分为两大类:内置策略和扩展策略。(1)内置策略:轮询、加权轮询、ip hash 三种;(2) 扩展策略主要通过第三方模块实现,种类丰富,常见有url hash、fair等。默认内置策略会被编译进Nginx内核,使用时只需要在Nginx服务器配置中设置相关参数即可。而扩展策略需要手动将第三方模块编码到Nginx内核。

  2.3 Web缓存

    Nginx服务器的Web缓存服务主要由proxy_cache和fastcgi_cache的相关指令集构成。其中proxy_cache主要用于在Nginx服务器提供反向代理服务时,对后端源服务器的返回内容进行URL缓存; fastcgi_cache主要用于对fastcgi的动态程序进行缓存。另外还有第三方模块的Web缓存功能。

    Squid也是一款相当流行的开源代理服务器和Web缓存服务器。Ngnix服务器对多核CPU的调度比Squid更好,性能高于Squid。

  参考文献:

    正向代理和反向代理:https://www.cnblogs.com/xdp-gacl/p/3706853.html

    官方介绍:http://nginx.org/en/

    Nginx高性能Web服务器详解

nginx系列 2 概述的更多相关文章

  1. 快速入门系列--MVC--01概述

    虽然使用MVC已经不少年,相关技术的学习进行了多次,但是很多技术思路的理解其实都不够深入.其实就在MVC框架中有很多设计模式和设计思路的体现,例如DependencyResolver类就包含我们常见的 ...

  2. Nginx系列

    包括nginx的入门和进阶学习. 目录 nginx系列1:认识nginx nginx系列2:搭建nginx环境 nginx系列3:搭建一个静态资源web服务器 nginx系列4:日志管理 nginx系 ...

  3. nginx系列 3 nginx.conf介绍(1)

    一. nginx.conf 文件结构概述 在第一篇中讲到nginx的安装,安装完后,默认的nginx服务器配置文件都存在安装目录conf中,主配置文件名为nginx.conf.下面是我linux系统安 ...

  4. 死磕nginx系列--nginx 目录

    死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统-nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕nginx系列--使用 ...

  5. 死磕nginx系列--配置文档解读

    nginx配置文件主要分为四个部分: main(全局设置) http ( ) upstream(负载均衡服务器设置) server(主机设置) location(URL匹配特点位置的设置) serve ...

  6. Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)

    用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...

  7. 死磕nginx系列

    死磕nginx系列 死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统--nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕 ...

  8. Nginx系列~概念与windows下环境搭建

    概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sys ...

  9. [2017-08-07]ABP系列——QuickStartA:概述、思想、入门和HelloWorld

    唔,说好的文章,欠了好久,先水一篇. 本系列目录:Abp介绍和经验分享-目录 概述 先表个态:对绝大多数人来说,ABP是成熟的,足以用到生产环境的. 最适合的:业务非常复杂且不追求极致性能的(这里并不 ...

随机推荐

  1. HEX SDUT 3896 17年山东省赛D题

    HEX SDUT 3896 17年山东省赛D题这个题是从矩形的左下角走到右上角的方案数的变形题,看来我对以前做过的题理解还不是太深,或者是忘了.对于这种题目,直接分析它的性质就完事了.从(1,1)走到 ...

  2. Newtonsoft.Json输出Json时动态忽略属性

    一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性 ...

  3. linux中sogou输入法崩溃重启

    经常在linux中搜狗输入法用着用着就崩溃了,无法输入中文,又不想重启电脑,照着下面在终端输入命令可以重启输入法: 1.先关闭fcitx(小企鹅输入法,提供了良好的中文输入法环境) # killall ...

  4. BUAA面向对象设计与构造——第一单元总结

    BUAA面向对象设计与构造——第一单元总结 第一阶段:只支持一元多项式的表达式求导 1. 程序结构 由于是第一次接触面向对象的编程,加之题目要求不算复杂,我在第一次作业中并没有很好利用面向对象的特点, ...

  5. PPT vba从Execl 拷贝图表

    在PPT 需要引用Execl的COM组件 Dim wkb As Workbook Sub Change() Set wkb = Workbooks.Open("D:\D2_月报基础数据.xl ...

  6. [微信跳转链接]之WAP跳转微信内指定页面

    由于微信覆盖太全面了,几乎所有人都使用微信APP,但是对于做产品的公司来说,所有的产品几乎都离不开微信的推广,然而微信属于封闭式的一个社交应用,大部分只能在今日头条,百度,等等...如果你在推广页面上 ...

  7. 洛谷p3801:红色的幻想乡

    初见完全没有思路.....感觉像是线段树 但二维感觉完全不可做嘛 于是只能去看了看题解 然而还是疯狂爆零+WA.. 和yycc神犇调了两三个小时才调出来... ——————以下个人理解 考虑到每次的修 ...

  8. PHP 清除 Excel 导入的数据空格

    处理excel中的数据时,遇到了页面中显示为空格,审查元素时却显示为换行,使用replace函数也不管用,反正就是不知道是什么东西,看起来像空格 中文空格这里面有好几种:没有简单的解决问题的方式,比如 ...

  9. SpringBoot报错:Failed to load ApplicationContext(javax.websocket.server.ServerContainer not available)

    引起条件: WebSocket+单元测试,单元测试报错! 解决方法: SpringBootTest增加webEnvironment参数. https://docs.spring.io/spring-b ...

  10. wait event & wake up

    在linux驱动中一个常用的场景, 驱动需要等待中断的响应, 才得以执行后续的代码,达到一个原子操作的目的 /* 静态申请队列 */ static DECLARE_WAIT_QUEUE_HEAD(s_ ...