目录索引模块

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;
<p>#开启目录索引孤男功能
autoindex on;</p>
<p>#默认为on, 显示出文件的确切大小,单位是bytes
#修改为off,显示出文件的大概大小,单位是kB或者MB或者GB。
autoindex_exact_size off;</p>
<p>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</p>
<p>#拒绝访问语法
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</p>
<p>#指定认证的文件
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</p>
<p>Active connections:		# 活跃的连接数
accepts					# TCP连接总数
handle					# 成功的TCP连接数
requests				# 请求数</p>
<p>Reading					# 读取请求头部
Writing					# 放回给客户端的头部
Waiting					# 等待的请求数</p>
<p>#注意:一次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</p>
<p>#调用上面的空间
Syntax:	limit_conn zone number;
Default:	—
Context:	http, server, location

配置示例

http {
limit_conn_zone $binary_remote_addr zone=addr:10m;</p>
<pre><code>...

server {

    ...

    location /download/ {
        limit_conn addr 1;
    }</code></pre></td></tr></tbody></table><p style="text-align: start">&nbsp;</p><h2 style="text-align: start" id="heading-18"><strong>请求限制模块</strong></h2><p style="text-align: start"><code>ngx_http_limit_req_module</code> ,该模块 (0.7.21) 用于限制每个定义的键的请求处理速率,特别是来自单个 IP 地址的请求的处理速率。限制使用”泄漏桶”方法完成。</p><h3 style="text-align: start" id="heading-19"><strong>语法</strong></h3><table><tbody><tr><td colspan="1" rowspan="1"><pre><code>#设置限制请求的空间
	#模块         空间里保存的内容  空间=空间名称:大小	速率 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;</p>
<pre><code>...

server {

    ...

    location /search/ {
        limit_req zone=one burst=5;
        limit_req_status 503;
    }</code></pre></td></tr></tbody></table>
青笺画卿颜の博客
有幸遇见,恰巧合拍
打赏作者
本文是原创文章,采用 CC BY-NC-ND4.0 协议,完整转载请注明来自 森语

评论
你无需删除空行,直接评论以获取最佳展示效果
你好啊!我是
森语
青笺画卿颜,鸢语慕君年

相信你可以在这里找到对你有用的知识教程
协议提醒助手
查看本站为你的个人隐私做出的努力
引用到评论