目录索引模块
ngx_http_autoindex_module
模块处理以斜杠字符('/')结尾的请求,并生成目录列表。 当ngx_http_index_module
模块找不到索引文件时,通常会将请求传递给ngx_http_autoindex_module
模块。
语法
Syntax: autoindex on | off;
Default:
autoindex off;
Context: http, server, location
常用参数
#默认中文是乱码,添加该参数可以解决乱码问题
charset utf-8;
#开启目录索引孤男功能
autoindex on;
#默认为on, 显示出文件的确切大小,单位是bytes
#修改为off,显示出文件的大概大小,单位是kB或者MB或者GB。
autoindex_exact_size off;
autoindex_localtime on;
#默认为off,显示的文件时间为UTC时间。
#修改为on, 显示的文件时间为文件的最后修改时间。
配置示例
location /download {
root /data;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
访问控制模块
ngx_http_access_module
,该模块允许限制对某些客户端地址的访问。
模块语法
#允许访问语法
Syntax: allow address | CIDR | unix: | all;
Default: —
Context: http, server, location, limit_except
#拒绝访问语法
Syntax: deny address | CIDR | unix: | all;
Default: —
Context: http, server, location, limit_except
访问控制实例
- 允许10.0.0.1访问,其他网址不允许
location /status {
allow 10.0.0.1;
deny all;
}
- 拒绝10.0.0.1访问,其他网址都允许
location /status {
deny 10.0.0.1;
allow all;
}
- 允许10.0.0.0网段访问,其他网段不允许
location /status {
allow 10.0.0.0/24;
deny all;
}
访问认证模块
ngx_http_auth_basic_module
,该模块允许通过使用"HTTP 基本身份验证"协议验证用户名和密码来限制对资源的访问。
语法
#注释
Syntax: auth_basic string | off;
Default: auth_basic off;
Context: http, server, location, limit_except
#指定认证的文件
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
配置示例
location / {
auth_basic "closed site";
auth_basic_user_file /etc/nginx/conf.d/htpasswd;
}
创建密码文件
#htpasswd命令需要提前安装httpd-tools软件
htpasswd -m -c /etc/nginx/conf.d/htpasswd user1
注意:给多个用户生成密码时,不能使用-c参数。
Nginx状态模块
ngx_http_stub_status_module
该模块提供对各种状态信息的访问。
语法
Syntax: stub_status;
Default: —
Context: server, location
配置示例
location /status {
stub_status;
}
Nginx七种状态
Active connections: 2
server accepts handled requests
4 4 56
Reading: 0 Writing: 1 Waiting: 1
Active connections: # 活跃的连接数
accepts # TCP连接总数
handle # 成功的TCP连接数
requests # 请求数
Reading # 读取请求头部
Writing # 放回给客户端的头部
Waiting # 等待的请求数
#注意:一次tcp连接,可以发起多次请求;
keepalive_timeout 0; #类似于关闭长连接
keepalive_timeout 0; #最长65秒没有活动则断开连接
连接限制模块
ngx_http_limit_conn_module
,该模块用于限制每个定义的键的连接数,特别是来自单个IP地址的连接数。ngx_http_limit_conn_module
并非所有连接都计算在内。只有当连接有服务器正在处理的请求并且已读取整个请求标头时,才计算连接。
语法
#设置限制的空间
#调用模块 空间里的内容 空间=空间名字:空间大小
Syntax: limit_conn_zone key zone=name:size;
Default: —
Context: http
#调用上面的空间
Syntax: limit_conn zone number;
Default: —
Context: http, server, location
配置示例
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
location /download/ {
limit_conn addr 1;
}
请求限制模块
ngx_http_limit_req_module
,该模块 (0.7.21) 用于限制每个定义的键的请求处理速率,特别是来自单个 IP 地址的请求的处理速率。限制使用"泄漏桶"方法完成。
语法
#设置限制请求的空间
#模块 空间里保存的内容 空间=空间名称:大小 速率 1r/s
Syntax: limit_req_zone key zone=name:size rate=rate [sync];
Default: —
Context: http
#调用上面空间
Syntax: limit_req zone=name [burst=number] [nodelay | delay=number];
Default: —
Context: http, server, location
#设置要返回的状态代码以响应被拒绝的请求
Syntax: limit_req_status code;
Default:
limit_req_status 503;
Context: http, , serverlocation
配置示例
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /search/ {
limit_req zone=one burst=5;
limit_req_status 503;
}