@kklinan
2017-03-09T18:18:43.000000Z
字数 2035
阅读 1027
Nginx
core module
限制/允许某些 IP
用户认证 当时访问某目录设置账号和密码访问
显示目录
根据 User-Agent 设置变量
返回 1*1 的空白透明图片,常用于用户行为统计分析
根据 IP 对变量进行赋值
gzip
自定义 header 头信息
限制单个 IP 请求处理率
格式化日志
将请求传递到另一个服务器
对各种状态信息的访问
该模块可以提供 Nginx 基本状态信息
用于使用PCRE正则表达式更改请求URI,返回重定向并有条件地选择配置。
适合于A/B测试(也叫做分离测试)的变量。或者当做负载均衡来使用。
修改网站响应内容中的字符串
TCP 代理
ngx_http_upstream_module
Nginx 模块一般被分成三大类:handler、filter 和 upstream。
利用 handler、filte 这两类模块,可以使 Nginx 轻松完成任何单机工作。 upstream 模块,将使 Nginx 跨越单机的限制,完成网络数据的接收、处理和转发。
数据转发功能,为 Nginx 提供了跨越单机的横向处理能力,使 Nginx 摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。在云模型大行其道的今天,数据转发是 Nginx 有能力构建一个网络应用的关键组件。当然,鉴于开发成本的问题,一个网络应用的关键组件一开始往往会采用高级程语言开发。但是当系统到达一定规模,并且需要更重视性能的时候,为了达到所要求的性能目标,高级语言开发出的组件必须进行结构化修改。此时,对于修改代价而言,Nginx 的 upstream 模块呈现出极大的吸引力,因为它天生就快。作为附带,Nginx 的配置系统提供的层次化和松耦合使得系统的扩展性也达到比较高的程度。
从本质上说,upstream 属于 handler,只是他不产生自己的内容,而是通过请求后端服务器得到内容,所以才称为 upstream(上游)。请求并取得响应内容的整个过程已经被封装到 Nginx 内部,所以 upstream 模块只需要开发若干回调函数,完成构造请求和解析响应等具体的工作。
upstream 模块是从 handler 模块发展而来,指令系统和模块生效方式与 handler 模块无异。不同之处在于,upstream 模块在 handler 函数中设置众多回调函数。实际工作都是由这些回调函数完成的。每个回调函数都是在 upstream 的某个固定阶段执行,各司其职,大部分回调函数一般不会真正用到。upstream 最重要的回调函数是 create_request、process_header 和 input_filter,他们共同实现了与后端服务器的协议的解析部分。
ngx_http_memcached_module
memcache 是一款高性能的分布式 cache 系统,得到了非常广泛的应用。memcache 定义了一套私有通信协
议,使得不能通过 HTTP 请求来访问 memcache。但协议本身简单高效,而且 memcache 使用广泛,所以大
部分现代开发语言和平台都提供了 memcache 支持,方便开发者使用 memcache。
Nginx 提供了 ngx_http_memcached 模块,提供从 memcache 读取数据的功能,而不提供向 memcache
写数据的功能。
HTTP load balancer
跨多个应用程序实例的负载平衡是用于优化资源利用率,最大化吞吐量,减少延迟并确保容错配置的常用技术。
有可能使用nginx作为一个非常有效的HTTP负载均衡器分配流量到几个应用程序服务器,并提高web应用程序的性能,可扩展性和可靠性与nginx。
HTTPS servers && ngx_http_ssl_module