Nginx 指导:概要




上一篇主要了解了 Nginx的结构以及配置文件。本篇从这里继续,了解 nginx 的概要: 架构所需要的模块以及高级配置技巧。

Nginx模块


Nginx 最厉害的是他的模块。整个的架构可以被想象成由各种各样的模块建成,或者可以想象成基于 nginx的核心在上面所建立的各种功能。要使用他们,最好能从源代码级别编译他们,并设置他们为可运行。

有些模块如果没有特别的定义,他们会自动编译的。 对于这些模块,我们找些有趣的模块研究一下,看看他们是如何被广泛应用的。

受限制的访问:

访问:(ngx_http_access_module):  该模块可以对指定的 IP地址进行限制访问。

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

HTTP 授权:(ngx_http_auth_basic_module): 允许通过HTTP基本的用户名密码授权访问:
location / {
    auth_basic           "password";
    auth_basic_user_file conf/htpasswd;
}

子请求授权:(ngx_http_auth_request_module): 根据子请求的结果执行客户端的授权。

限制链接:ngx_http_auth_request_module:允许您定义从某一个 IP 地址上可以发起的最大并发链接数。

限制请求:(ngx_http_limit_req_module): 限制从单个 IP地址上发起的请求数量。

大多数在 Nginx 编译过程中就能被激活的模块就更在这里了。同时我也来介绍一些第三方模块,对您实际的使用将更有帮助。

第三方模块:

在使用这些模块时,首行得下载他们,并放到指定的Nginx目录下进行编译,就如同下面的代码所示:(我们假定您正工作在 nginx source目录之下)。


 ./configure --add-module=/path/to/module/source

Nginx wiki 列出一些大家很喜欢用的第三方模块。在这些模块中,让我们选择这个重写网页并使用公共资源以减少延迟和带宽的模块。

Ngx_pagespeed: 


这个模块是 Google 在 PageSpeed 项目里开发的。 目的很明显就是为了利用Nginx的通信优化模式,提高页面加载时间。

请根据 安装 ngx_pagespeed 的教程来安装这个模块。该模块也是您服务器必须安装的模块之一。

Nginx-rtmp-module:


实时流,录制, 在线转码, 高级缓存技术。 该模块很容易就能帮到您。

Nginx-push-stream-module


Nginx 里的HTTP 流推送模块。 支持事件源长文件的轮流检测。查看例子: WebSocket.

其它的提要:

在使用 Nginx, 下面的这些工具也非常有帮助:

  1. ngxtop: ngxtop 能够解析 nginx 的访问日志并且输出nginx 服务器的顶级指表。
  2. Ngx_openresty: 将 nginx 转变成为全功能的网络应用服务器。
  3. Server configs:  是nginx 配置文件小段的仓库。 在你开始配置服务器并且想要设置的正确时,该仓库就发挥了重要的作用。他能帮助你提高网站的性能以及安全性,还能协助你分配资源使用。
  4. Lua-nginx-module: 把Lua 内嵌入 Nginx中去。
  5. H5ai:   值得探索, 一个 HTTP网站服务器索引模块,包括了 Apache Httpd, lighttpd, nginx 以及 Cherokee.
  6. Nginx 资源大全
  7. 如何写一个 nginx 模块。


不深思则不能造于道。不深思而得者,其得易失。

名人名言- 曾国藩
  • By 优联实达
  • 2015-11-08
  • 2991
  • 公司新闻,网站开发,网站设计,UI