nginx中文文档-ngx_http_dav_module

ngx_http_dav_module模块是为通过WebDAV协议自动管理文件而设计的,该模块处理HTTP和WebDAV的请求方法PUT、DELETE、MKCOL、COPY和MOVE。默认情况下,该模块不会构建,需要使用编译参数–with-http_dav_module开启。
需要额外WebDAV方法的WebDAV客户端操作在该模块中不会起作用。

示例配置

location / {
    root                  /data/www;

    client_body_temp_path /data/client_temp;

    dav_methods PUT DELETE MKCOL COPY MOVE;

    create_full_put_path  on;
    dav_access            group:rw  all:r;

    limit_except GET {
        allow 192.168.1.0/32;
        deny  all;
    }
}

dav_access

语法:dav_access users:permissions
默认:dav_access user:rw
上下文:http, server, location

设置新创建的文件及目录的访问权限,如:
dav_access user:rw group:rw all:r;
如果定义了group或all的权限,user的权限可以被省略:
dav_access group:rw all:r;

dav_methods

语法:dav_methods off | method
默认:dav_methods off
上下文: http, server, location

允许指定的HTTP和WebDAV方法,参数off禁止该模块处理所有的方法。支持以下几种方法:PUT、DELETE、MKCOL、COPY和MOVE。
通过PUT方法上传的文件,首先会存到临时文件中,然后再重命名。从0.8.9版本开始,临时文件和持久化存储的文件可以在不同的文件系统中。但要知道的是,这样做会使文件在不同的文件系统中进行复制而不是简单的重命名。因此建议通过client_body_temp_path指令给出保存临时文件和永久文件的目录位置,并放置在同一个文件系统下。
当通过PUT方法创建文件时,可以通过“Date”头域设置文件的修改时间。

create_full_put_path

语法:create_full_put_path on | off
默认:create_full_put_path off
上下文:http, server, location

WebDAV规定只能在已存在的目录下创建文件,该指令会创建所有需要的目录。

min_delete_depth

语法:min_delete_depth number
默认:min_delete_depth 0
上下文:http, server, location

允许DELETE方法删除文件位置的层级数,删除的层级数不小于给出的值,例如:
min_delete_depth 4
允许删除:

/users/00/00/name(4级)
/users/00/00/name/pic.jpg(5级)
/users/00/00/page.html(4级)

禁止删除:

/users/00/00(3级)

nginx中文文档-ngx_http_charset_module

ngx_http_charset_module模块为响应头额外的添加了自定义字符编码“Content-Type”域。

ngx_http_charset_module模块为响应头额外的添加了自定义字符编码“Content-Type”域。该模块可以将数据从一种编码转为另一种编码,有以下的限制:

  • 转换是单向的,从服务器到客户端
  • 只有单字节字符可以被转换
  • 单字节编码可以转换为UTF-8或从UTF-8转换

示例配置

include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

charset

语法:charset charset | off
默认:charset off
上下文:http, server, location, if in location

在响应头域中通过 “Content-Type” 添加指定的字符编码。如果这个编码与source_charset指令中定义的编码不同,则会进行编码转换。
参数off取消了“Content-Type”响应头域。
编码可以定义为一个变量:
charset $charset;
这种情况下,变量的所有可能的值需要在配置文件中的charset_map、charset或source_charset指令至少一个中出现。对于utf-8、windows-1251以及koi8-r编码, 可以包含文件conf/koi-win、conf/koi-utf和conf/win-utf到配置文件中。 对于其他的编码,可以通过一个虚拟的转换表实现,例如:
charset_map iso-8859-5 _ { }
字符编码也可以通过“X-Accel-Charset”响应头域设置。这个功能可以通过proxy_ignore_headers、fastcgi_ignore_headers、uwsgi_ignore_headers及scgi_ignore_headers指令禁用。

charset_map

语法:charset_map charset1 charset2 { … }
默认:—
上下文:http

描述了从一种编码转为另一种编码的转换表。反向转换表使用同样的数据构建。 字符编码用16进制给出。丢失的字符在0x80-0xFF之间使用“?”替换。当从UTF-8编码进行转换时,丢失的一字节字符将使用“&#XXXX;”代替。
例子:

charset_map koi8-r windows-1251 {
    C0 FE ; # small yu
    C1 E0 ; # small a
    C2 E1 ; # small b
    C3 F6 ; # small ts
    ...
}

当描述一个转为UTF-8编码的转化表时,UTF-8应在第二列给出,例如:

charset_map koi8-r utf-8 {
    C0 D18E ; # small yu
    C1 D0B0 ; # small a
    C2 D0B1 ; # small b
    C3 D186 ; # small ts
    ...
}

全量的转换表koi8-r与windows-1251转换表、koi8-r与utf-8转换表、windows-1251与utf-8转换表分别在conf/koi-win、conf/koi-utf 和conf/win-utf文件中。

charset_types

语法:charset_types mime-type
默认:charset_types text/html text/xml text/plain text/vnd.wap.wml
application/javascript application/rss+xml
上下文:http, server, location
版本:0.7.9+

开启处理请求指定MIME类型的功能。
特殊值“*”代表处理任何类型,该值从0.8.29版本起开始支持。
直到1.5.4版本,使用“application/x-javascript”作为默认的MIME类型,而不是“application/javascript”。

override_charset

语法:override_charset on | off
默认:override_charset off
上下文:http, server, location, if in location

决定当响应已经通过“Content-Type”头域带了字符编码时,是否会为从代理服务器或FastCGI/uwsgi/SCGI服务器收到的结果进行转换。如果允许转换,从响应中收到的编码将作为原始编码类型。
需要注意的是,如果响应是从子请求接收到的,那么总会从响应的编码转为主请求的编码,不管override_charset指令的设置。

source_charset

语法:source_charset charset
默认:—
上下文:http, server, location, if in location

定义响应的原始编码,如果该值与charset指令中定义的字符编码不同,则会进行转换。