nginx基础模块配置

原文链接: https://www.cpweb.top/552

1、目录索引模块:ngx_http_autoindex_module

开启目录索引

Syntax:	autoindex on | off;
Default: autoindex off;
Context: http, server, location

off以可读的格式显示大小信息

Syntax:	autoindex_exact_size on | off;
Default: autoindex_exact_size on;
Context: http, server, location	

显示文件最后修改的时间,默认是上传的时间。

Syntax:	autoindex_localtime on | off;
Default: autoindex_localtime off;
Context: http, server, location

2、访问限制模块: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

示例:依次按顺序检索,如果需要制定的规则较多,推荐使用ngx_http_geo模块。

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

3、基本认证模块: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 conf/htpasswd;
}

密码格式如下,需要通过htpasswd命令生成。

[root@web01 ~]# htpasswd -c /etc/nginx/auth_basic test    //-c生成新的密码文件
New password: 
Re-type new password: 
Adding password for user test

[root@web01 ~]# cat /etc/nginx/auth_basic 
test:$apr1$VP/ZpG3y$mNFIQ2Pib3WhI7diMs3ak0

[root@web01 ~]# htpasswd /etc/nginx/auth_basic test2    //添加认证用户,不用加-c,加了-c会覆盖原来的用户
New password: 
Re-type new password: 
Adding password for user test2

[root@web01 ~]# cat /etc/nginx/auth_basic 
test:$apr1$VP/ZpG3y$mNFIQ2Pib3WhI7diMs3ak0
test2:$apr1$TNo4tq2S$djvomoR4uLzo2xGXsdVDn0

4、状态模块:ngx_http_stub_status_module

Syntax:	stub_status;
Default:	—
Context: server, location

示例:

location = /status {
    stub_status;
}

输出信息含义:

Active connections: 1 
server accepts handled requests
          1       1       7 
Reading: 0 Writing: 1 Waiting: 0 

------------------------------------

Active connections	当前活跃连接数,包括Waiting等待连接数。
accepts			    已接收的总TCP连接数量。
handled			    已处理的TCP连接数量。
requests			当前总http请求数量。
Reading			    当前正在读取的请求头的连接数量。
Writing			    当前正在响应的请求头的连接数量。
Waiting			    当前等待请求的空闲客户端连接数

5、连接限制模块:ngx_http_limit_conn_module

  设置共享内存区域,区域将保留各种值的状态。key可以包含文本,变量及其组合。格式是针对限制的对象、内存空间的名字、内存空间大小。 b i n a r y r e m o t e a d d r 是 限 制 同 一 客 户 端 的 I P 地 址 并 发 连 接 数 ; binary_remote_addr是限制同一客户端的IP地址并发连接数; binaryremoteaddrIPserver_name是限制同一server最大并发数。

Syntax:	limit_conn_zone key zone=name:size;
Default:	—
Context: http

设置共享内存区域和最大允许连接数。当超过此限制时,服务器将返回503状态码。

Syntax:	limit_conn zone number;
Default:	—
Context: http, server, location

示例:使用limit_conn指令使用前,需要在http层定义limit_conn_zone。

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;
					//定义了一个10m内存空间,名称叫addr,针对的是来源的IP。

    ...
    
    server {
    
        ...
        
        location /download/ {
            limit_conn addr 1;
        }
    }
}

6、请求限制模块:ngx_http_limit_req_module

解释同上limit_conn_zone,不过它限制的是来自单个IP地址的请求的处理速率。

Syntax:	limit_req_zone key zone=name:size rate=rate;
Default:	—
Context: http

  设置共享内存区域和请求的最大并发数。如果请求速率超过为区域配置的速率,则会延迟其处理,以便以定义的速率处理请求。过多的请求将被延迟,直到其数量超过最大突发大小为止,在这种情况下,该请求将会终止返回503状态码。默认情况下,最大并发数等于零。

Syntax:	limit_req zone=name [burst=number] [nodelay | delay=number];
Default:	—
Context: http, server, location

示例:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
                   //定义了一个10m内存空间,名称叫one,平均每秒最多允许不超过1个请求,针对来源ip。    
    ...
    
    server {
    
        ...
        
        location /search/ {
            limit_req zone=one burst=5;
        }
    }
}

  如果不需要在限制请求时延迟过多的请求,则应使用参数nodelay,则延迟的请求将会被丢弃。即如果你的网页完全显示出来需要6个请求,不配nodelay,那就是一秒处理一个,处理到第五个请求停止,总共用时5秒钟,丢失一个请求。如果配置了参数nodelay,则只处理第一个请求,其余请求全部丢弃。

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server {
    location /search/ {
        limit_req zone=one burst=5 nodelay;     //平均每秒最多处理1个请求,并且并发发不超过5个请求,对于请求不延迟处理直接丢弃。
    }
}


原文链接: https://www.cpweb.top/552

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值