一概述
关于Nginx Web Server的篇章,发现挺长时间没有更新了,只能利用空闲的时间细心整理一下,希望在提升自己能力的同时,也能帮助到大家,在之前的写的一篇Nginx文档中,介绍了Nginx核心模块ngx_http_core_module常用指令的详细说明,也加以实例的操作展示出来,在之后的文档中继续总结Nginx常用的模块:
模块: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)本地测试
b)客户端测试
模块: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; }
输出结果:
#提示:客户端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后,显示出文件的大概大小,输出单位是kB、MB、GB等;
autoindex_localtime on;
指定索引列表中,显示文件的时间戳为本地时间或者UTC时间;默认为off(关闭),显示的文件时间戳为UTC时间。改为on后,显示的文件时间戳为服务器的本地时间;
示例:
location / { autoindex on; autoindex_exact_size off; autoindex_localtime on; }
输出结果:
#提示:使用autoindex功能的朋友,网站根目录下不要有index.html,index.php索引文件,不然浏览器中显示的便是索引文件中的信息;
ngx_http_charset_module
功能:添加指定的字符集的“Content-Type”响应标头字段,此外,该模块可以将数据从一个字符集转换成另一个字符集,但它会有一些局限性:
a)执行转换的一种方法,从服务器到客户端,且只有单字节字符集可以转换;或者单字节转换为UTF-8;
指令:
Charset utf-8;
添加指定的字符集的“Content-Type”响应头字段,若指定的字符集不同于source_charset指令指定的字符集,将执行转换;
Charset mime-type;
处理与响应指定的mime类型,默认值为text/html、text/xml、application/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; }
输出结果:
#提示:默认情况下charset_types字段可以省略,因为在Nginx配置文件中includemime.types定义众多类型的“Content-Type”响应头字段,建议朋友去了解一下;
ngx_http_gzip_module
功能:此模块是个过滤器,使用Gzip方法响应压缩,通常有助于减少一半甚至更多的传输数据的大小;
指令:
gzip off;
启用或关闭gzip响应,默认关闭(off)状态,启用状态为(on);
gzip_buffers 32 4k;
设置用于压缩响应的缓存区数量与大小,默认情况下,缓存区大小等于一个内存页,可设置为4k或8k,这往往取决于一个平台;
#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;
启用或禁用插入“Vary:Accept-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; }
输出结果:
我想说,学习也是一件辛苦的事情。古人云:“阅万卷书,行×××路”;对于学习,请多花费一些时间,且能持之以恒,把别人的知识变成自己的知识,能熟练运用,精通之,便是你最终的目标;相信自己,你也可以;