概述

关于Nginx Web Server的篇章,发现挺长时间没有更新了,只能利用空闲的时间细心整理一下,希望在提升自己能力的同时,也能帮助到大家,在之前的写的一篇Nginx文档中,介绍了Nginx核心模块ngx_http_core_module常用指令的详细说明,也加以实例的操作展示出来,在之后的文档中继续总结Nginx常用的模块:

Nginx学习指南之模块的应用解析(二)_第1张图片


模块:ngx_http_access_module

功能:允许,限制某些客户端的访问地址

指令:

allow     127.0.0.1;


允许指定IP地址的客户端访问,可以是单独的IP,或者IP网段与Unix套接字;

deny      all;


限制指定IP地址的客户端访问,可以是单独的IP,或着IP网段与Uinx套接字;

示例:

Location / {
       allow     127.0.0.1;
       deny      0.0.0.0/24
}

 

输出结果:

a)本地测试

Nginx学习指南之模块的应用解析(二)_第2张图片


b)客户端测试

Nginx学习指南之模块的应用解析(二)_第3张图片


模块:ngx_http_auth_basic_module

功能:允许限制通过验证用户名和密码使用HTTP基本身份验证协议访问服务器资源。

指令:

auth_basic    "Nginx Access Basic";


使用HTTP基本身份验证协议,声明用户验证时的提示信息;

auth_basic_user_file    "path/client.passwd";


指定用户身份验证文件,如果不是网页根目录下,需要些绝对路径;

 

示例:

location / {
    auth_basic           "Nginx Access Basic";
    auth_basic_user_file      /data/bbs/program/client.passwd;
}


 

输出结果:

Nginx学习指南之模块的应用解析(二)_第4张图片


#提示:客户端client.passwd验证文件,需要用htpasswd命令生成,对于不熟悉的朋友可以查阅:http://hi.baidu.com/df_world/item/c6183a16b51e4afc756a848b

 

模块ngx_http_autoindex_module

功能:自动索引目录

指令:

autoindex    off;


启用或者禁用目录列表的输出,默认为off(关闭);

autoindex_index_exac_size     on;


显示索引列表中,文件确切的大小,默认为on(启用),输出单位是bytes;改为off后,显示出文件的大概大小,输出单位是kBMBGB等;

autoindex_localtime  on;


指定索引列表中,显示文件的时间戳为本地时间或者UTC时间;默认为off(关闭),显示的文件时间戳为UTC时间。改为on后,显示的文件时间戳为服务器的本地时间;

 

示例:

location / {
            autoindex   on;
            autoindex_exact_size off;
            autoindex_localtime on;
        }


 

输出结果:

Nginx学习指南之模块的应用解析(二)_第5张图片


#提示:使用autoindex功能的朋友,网站根目录下不要有index.htmlindex.php索引文件,不然浏览器中显示的便是索引文件中的信息;


ngx_http_charset_module

功能:添加指定的字符集的“Content-Type”响应标头字段,此外,该模块可以将数据从一个字符集转换成另一个字符集,但它会有一些局限性:

a)执行转换的一种方法,从服务器到客户端,且只有单字节字符集可以转换;或者单字节转换为UTF-8

 

指令:

Charset  utf-8;


添加指定的字符集的“Content-Type”响应头字段,若指定的字符集不同于source_charset指令指定的字符集,将执行转换;

Charset  mime-type;


处理与响应指定的mime类型,默认值为text/htmltext/xmlapplication/javascript等,其中除了“text/html”类型,特殊值“*”将匹配任何MIME类型,

Source_charset  utf-8;


定义响应的源字符集,如果设置的源字符集不同于charset指令指定的字符集,将执行转换;

 

示例:

Server {
charset utf-8;
source_charset utf-8;
charset_types  text/xmltext/plain text/vnd.wap.wml application/javascript application/rss+xml;
}


 

输出结果:

Nginx学习指南之模块的应用解析(二)_第6张图片


#提示:默认情况下charset_types字段可以省略,因为在Nginx配置文件中includemime.types定义众多类型的“Content-Type”响应头字段,建议朋友去了解一下;

 

ngx_http_gzip_module

功能:此模块是个过滤器,使用Gzip方法响应压缩,通常有助于减少一半甚至更多的传输数据的大小;

 

指令:

gzip off;


启用或关闭gzip响应,默认关闭(off)状态,启用状态为(on);

gzip_buffers 32 4k;


设置用于压缩响应的缓存区数量与大小,默认情况下,缓存区大小等于一个内存页,可设置为4k8k,这往往取决于一个平台;

 

#Linux平台可以通过如下方法查询页面大小:

[root@Nginx_web1~]# getconf PAGE_SIZE

4096

 

gzip_disable    "MSIE [4-6]\.";


禁用gzipping响应“User-Agent”头字段匹配任何指定正则表达式的请求。

gzip_min_length    20;


设置将要被gzip压缩响应的最小长度,这长度只从“Content_Length”响应标头字段来决定。

gzip_http_version      1.1;


设置压缩响应请求需要的最小HTTP版本,支持HTTP1.0,HTTP1.1

gzip_proxined     off;


启用或禁用gzipping对代理请求依赖于请求和响应,这响应代理事实上是有“Via”请求头字段的存在来确定,一个指令接受多个参数;

gzip_types    mime-type;


启用gzipping响应指定的mime类型,除了“text/html”类型,其中特殊值“*”匹配任何mime类型,“text/html”类型的响应始终被压缩;

gzip_vary      off;


启用或禁用插入“VaryAccept-Encoding”响应头字段;

 

示例:

http {
gzip  on;
gzip_min_length 1k;
gzip_buffers 16 8k;    
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_disable "MSIE [4-6]\.";
gzip_types text/plain text/cssapplication/x-javascript text/xml application/xml text/javascript;
gzip_vary on;
}


输出结果:

Nginx学习指南之模块的应用解析(二)_第7张图片


我想说,学习也是一件辛苦的事情。古人云:“阅万卷书,行×××路”;对于学习,请多花费一些时间,且能持之以恒,把别人的知识变成自己的知识,能熟练运用,精通之,便是你最终的目标;相信自己,你也可以;