首页 > 其他 > 详细

Nginx常用的模块

时间:2020-07-09 19:55:44      阅读:69      评论:0      收藏:0      [点我收藏+]

ngx_http_access_module模块

ngx_http_access_module模块允许限制对某些客户端地址的访问。

Example Configuration

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

ngx_http_auth_basic_module模块

ngx_http_auth_basic_module模块允许通过使用“ HTTP基本身份验证”协议验证用户名和密码来限制对资源的访问。

修改配置文件

location / {
root html;
index index.html index.htm;
auth_basic "Admin";                                  ##认证对话框的提示字符串显示的内容
auth_basic_user_file /usr/local/nginx/conf/htpasswd; ##存放认证用的用户名和文件,需要用htpasswd命令生成

安装一下htpasswd命令

yum install httpd-tools

生成nginx用户和密码文件

[root@localhost nginx]# htpasswd -c /usr/local/nginx/conf/htpasswd nginx
New password: 
Re-type new password: 
Adding password for user nginx

重启一下nginx然后访问

nginx -s reload

然后用我们刚才设置的用户密码登陆就可以了

技术分享图片

ngx_http_stub_status_module模块

ngx_http_stub_status_module模块提供对基本状态信息的访问。

示例

location /admin/ {
alias /var/www/html/;
stub_status;                 ##重点是这一个指令
}    

重新装载一下配置文件

nginx -s reload

接下来我们访问网站

技术分享图片

 

 

提供以下状态信息:

Active connections
当前活动的客户端连接数,包括Waiting连接数。
accepts
接受的客户端连接总数。
handled
已处理的连接总数。通常,参数值与accepts 除非达到某些资源限制(例如, worker_connections限制)相同。
requests
客户端请求总数。
Reading
nginx正在读取请求标头的当前连接数。
Writing
nginx正在将响应写回到客户端的当前连接数。
Waiting
当前等待请求的空闲客户端连接数。

ngx_http_limit_conn_module模块

ngx_http_limit_conn_module模块用于限制每个定义的键的连接数,特别是来自单个IP地址的连接数。

并非所有连接都被计数。仅当连接具有服务器正在处理的请求并且已读取整个请求标头时,才对连接进行计数。

示例

http {
          limit_conn_zone $binary_remote_addr zone=addr:10m;
          ...
          server {
          ...
          location / {
            limit_conn addr 1;
        }

$binary_remote_addr: 客户端源IP地址信息 采用二进制格式  将IP头部字节控制在4字节

$remote_addr:        客户端源IP地址信息                 将IP头部字节控制在24字节

zone=addr:10m;       从内存分配出一定空间(默认10m空间),用于存储访问网站客户端的源IP地址信息,将分配空间进行命名(默认名称addr)

addr 1;              限制内存空间中的每个地址只能建立一个连接 

ngx_http_limit_req_module模块

所述ngx_http_limit_req_module模块用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率。使用“漏斗”方法完成限制。

http {
   limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;   
   ...
   server {
   ...
   location / {
   limit_req zone=one burst=10;
}
       
rate=1r/s;    定义访问请求频率 每秒请求一次  request  
       
实际配置
http {
    limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s;
       server {
          listen   80;
          server_name  www.welkin.com;
          location / {
              root  /html/www;
              index index.html;
              limit_req zone=test burst=10 nodelay;   
          }设置每个客户端只能连接十次 不设置nodelay超过十次则每秒只能发送一个请求
       }

nodelay: 是否延迟发送请求信息,配置上表示不延迟发送,将过多请求进行丢弃

ngx_http_rewrite_module模块

该ngx_http_rewrite_module模块用于使用PCRE正则表达式更改请求URI,返回重定向并有条件地选择配置。

实例配置

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

if ($invalid_referer) {
    return 403;
}

以上所有来至example.com和域名以及www.example.org/galleries/和google的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。

参数可以如下所示:

none请求头中缺少“Referer”字段;

blocked“Referer”字段出现在请求头中,但其值已被防火墙或代理服务器删除; 这些值是不以“ http://”或“ https://” 开头的字符串;

server_names“Referer”请求标题字段包含一个服务器名称; 任意字符串定义一个服务器名称和一个可选的URI前缀。服务器名称可以*在开头或结尾处具有“ ”。在检查期间,“Referer”字段中的服务器端口被忽略; 正则表达式的第一个符号应该是“ ~”。应该注意的是,表达式将与在“ http://”或“ https://” 之后开始的文本匹配。

ngx_http_autoindex_module模块

ngx_http_autoindex_module模块处理以斜线字符(‘/‘)结尾的请求并产生目录列表。

 

location / {
    autoindex on;
}

 

待续(●ˇ∀ˇ●)

Nginx常用的模块

原文:https://www.cnblogs.com/shmilyxue/p/13275583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!