一. 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. 【数据结构】KMP算法

    我还是不太懂... 转2篇大神的解释    1>https://www.cnblogs.com/yjiyjige/p/3263858.html     2>https://blog.csd ...

  2. Adams 2013自定义插件方法zz

    1.Adams插件介绍 Adams的高级模块(如Controls控制模块.Vibration振动模块.Durability耐久性模块等)是以插件的形式集成在Adams软件中.通过Adams提供的插件管 ...

  3. Falsy Bouncer 过滤数组假值

    过滤数组假值 (真假美猴王) 删除数组中的所有假值. 在JavaScript中,假值有false.null.0."".undefined 和NaN. function bounce ...

  4. 阿里云服务器 yii2执行composer提示报错

    未解决 composer installLoading composer repositories with package informationUpdating dependencies (inc ...

  5. 推荐vim学习教程--《Vim 练级手册》

    非常不错的vim学习资源,讲解的简单明了,可以作为速查工具,在忘记时就翻下.地址如下: <Vim 练级手册>

  6. 如何优化UI布局?

    Android系统中填充布局是一个开销巨大的过程,每一个额外的嵌套布局和包含的View,都直接影响到应用程序的性能和响应能力.为了使应用程序流畅地运行和快速地响应,重要的是尽可能地保持布局的简单和避免 ...

  7. 用ttBulkCp把excel中的数据导入到timesten数据库中

    最近要做数据预处理,需要用到数据库.而且是以前从来没听说过的TimesTen. 首要目标是要把Excel里的数据,导入到TimesTen数据库中.而TimesTen在win10里用不了,于是我就在虚拟 ...

  8. rest_framework之权限源码剖析

    权限问题 1.models.py 2.用户类型: 3.views.py: 假设订单相关业务(只有SVIP用户有权限) 假设用户信息相关业务(只有普通用户.VIP有权限) 4.运行结果: 基本使用 以上 ...

  9. 初始化git库并配置自动部署

    1.初始化库 git init --bare wap.git 2.配置wap.git/config文件 [core] repositoryformatversion = 0 filemode = tr ...

  10. [Codeforces Round #516][Codeforces 1063B/1064D. Labyrinth]

    题目链接:1063B - Labyrinth/1064D - Labyrinth 题目大意:给定一个\(n\times m\)的图,有若干个点不能走,上下走无限制,向左和向右走的次数分别被限制为\(x ...