目录索引模块
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;
autoindex_exact_size off;
autoindex_localtime 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 -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 handle requests
Reading Writing Waiting
keepalive_timeout 0; keepalive_timeout 0;
|
连接限制模块
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 地址的请求的处理速率。限制使用”泄漏桶”方法完成。
语法
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; }
|