[关闭]
@kklinan 2017-03-09T18:18:43.000000Z 字数 2035 阅读 1027

Nginx 常用功能/模块

Nginx


核心模块

core module

官方参考文档

重写

官方参考文档

websocket 代理

官方参考文档

ngx_http_core_module

ngx_http_access_module

限制/允许某些 IP

ngx_http_auth_basic_module

用户认证 当时访问某目录设置账号和密码访问

ngx_http_autoindex_module

显示目录

ngx_http_browser_module

根据 User-Agent 设置变量

ngx_http_empty_gif_module

返回 1*1 的空白透明图片,常用于用户行为统计分析

ngx_http_geo_module

根据 IP 对变量进行赋值

ngx_http_gzip_module

gzip

ngx_http_headers_module

自定义 header 头信息

ngx_http_limit_req_module

限制单个 IP 请求处理率

ngx_http_log_module

格式化日志

ngx_http_proxy_module

将请求传递到另一个服务器

ngx_http_status_module

对各种状态信息的访问

ngx_http_stub_status_module

该模块可以提供 Nginx 基本状态信息

ngx_http_rewrite_module

用于使用PCRE正则表达式更改请求URI,返回重定向并有条件地选择配置。

ngx_http_split_clients_module

适合于A/B测试(也叫做分离测试)的变量。或者当做负载均衡来使用。

ngx_http_sub_module

修改网站响应内容中的字符串

ngx_stream_core_module

TCP 代理

upstream 模块

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,他们共同实现了与后端服务器的协议的解析部分。

memcached 模块

ngx_http_memcached_module

官方参考文档

memcache 是一款高性能的分布式 cache 系统,得到了非常广泛的应用。memcache 定义了一套私有通信协
议,使得不能通过 HTTP 请求来访问 memcache。但协议本身简单高效,而且 memcache 使用广泛,所以大
部分现代开发语言和平台都提供了 memcache 支持,方便开发者使用 memcache。

Nginx 提供了 ngx_http_memcached 模块,提供从 memcache 读取数据的功能,而不提供向 memcache
写数据的功能。

HTTP 负载均衡

HTTP load balancer

官方参考文档

跨多个应用程序实例的负载平衡是用于优化资源利用率,最大化吞吐量,减少延迟并确保容错配置的常用技术。

有可能使用nginx作为一个非常有效的HTTP负载均衡器分配流量到几个应用程序服务器,并提高web应用程序的性能,可扩展性和可靠性与nginx。

HTTPS 服务器

HTTPS servers && ngx_http_ssl_module

官方参考文档
ngx_http_ssl_module

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注