Nginx的常用模块

news/2025/1/31 18:48:29 标签: nginx, 运维

一、概述

Nginx 是一款高性能的开源 Web 服务器和反向代理服务器,它通过模块化架构提供了丰富的功能。

二、模块介绍

1、autoindex模块

1.1、位置:

http、server、location

1.2、开启autoindex

server {

     listen 80;

     server_name _;

  location / {

     root /code;

     index index.html;

     autoindex  on;                         #开启列表功能

    }

}

1.3、关闭autoindex 

server {

     listen 80;

     server_name _;

  location / {

     root /code;

     index index.html;

     autoindex off;                    #关闭列表功能(默认关闭)

     }

}

1.4、autoindex显示文件大小参数

1.4.1、关闭文件大小显示

server {

    listen 80;

    server_name _;

  location / {

    root /code;

    index index.html;

    autoindex on;

    autoindex_exact_size off;          #示出文件的大概大小,单位是kB或者是MB或者是GB

    }

}

1.4.2、打开文件大小显示

server {

    listen 80;

    server_name _;

  location / {

    root /code;

    index index.html;

    autoindex on;

    autoindex_exact_size on;   #显示出文件的确切大小,单位是bytes(默认方式)

    }

1.5、autoindex显示文件时间的参数

1.5.1、打开文件显示时间

server {

    listen 80;

    server_name _;

  location / {

    root /code;

    index index.html;

    autoindex on;

    autoindex_localtime    on;            #示的文件时间为在服务器创建时间

     }

}

1.5.2、关闭文件显示时间

server {

     listen 80;

     server_name _;

   location / {

      root /code;

      index index.html;

     autoindex on;

     autoindex_localtime   off;         #显示的时间为GMT时间(为默认方式)

     }

}

2、修改显示文字格式

server {

     listen 80;

     server_name _;

     charset utf-8,gbk;            #修改文字显示格式

   location / {

     root /code;

     index index.html;

     autoindex on;                 

      }

}

3、对下载资源进行限速参数 

3.1、单纯限制下载速度

server {

     listen 80;

     server_name _;

     limit_rate 1M;                               #限制每秒1M的速度下载

   location / {

     root /code;

     index index.html;

     }

3.2、下载N兆后开始限速 

server {

     listen 80;

     server_name _;

     limit_rate_after  50M;                #下载50M后开始限速

     limit_rate 1M;

   location / {

     root /code;

     index index.html;

    }

4、用户验证模块

4.1、生成密码

htpasswd -c -b /etc/nginx/auth.conf   lv  123   #   lv:验证用户名    123:验证密码   

4.2、服务配置 

 server {

      listen 80;

      server_name _;

      auth_basic  "lv";                                                        #用户提示字符

      auth_basic_user_file  /etc/nginx/auth.conf;              #指定用户名密码文件位置

    location / {

      root /code;

      index index.html;

      }

}

5、Nginx的状态模块 

5.1、位置作用 

作用:显示用户访问nginx的连接信息

位置:server、location 

5.2、配置nginx状态模块 

 server {

     listen 80;

     server_name _;

   location / {

     root /code;

     index index.html;

    }  

location /nginx {               #显示状态的名称可随意

      stub_status;              #显示状态                

    }

}

5.3、浏览器访问测试 

例如: 10.0.0.7/nginx

  Active connections: 6                #当前TCP的连接数
  server accepts handled requests
         32      32       233        #已经接受   #已经处理   #总请求
  Reading: 0 Writing: 1 Waiting: 5     #读头       #响应头     #等待连接

 6、IP访问限制模块

6.1、位置作用 

作用:允许特定用户进行访问

位置:http、server、location 

6.2、配置IP访问限制 

 server {

     listen 80;

     server_name _;

     allow 172.16.1.0/24;                     #允许这个网段的进行访问

     deny all;                                       #限制所有

   location / {

     root /code;

     index index.html;

     }

}

7、TCP连接数控制模块 

7.1、位置 

放在/etc/nginx/nginx.conf 

放在server中

7.2、限制IP数配置

 7.2.1、放在http中

 limit_conn_zone $remote_addr  zone=conn_zone:10m;

# limit_conn_zone : 限制模块名称

# $remote_addr  : 客户端IP

# zone=conn_zone:10m  : 开辟内存空间名称并设置大小为10M

7.2.2、放在server中 

server {

    listen 80;

    server_name _;

    limit_conn conn_zone 1;              #连接限制,限制同时最高1个TCP连接

7.3、请求数限制 

7.3.1、放在http中

 limit_req_zone $remote_addr zone=req_zone:10m rate=20r/s;  #限制每秒钟最多1个请求

7.3.2、放在server/location中 

 limit_req zone=req_zone burst=3 nodelay;           #延迟3个请求

 limit_req_status 478;                                             #返回状态码

 error_page 478 /err.html;                                      #重定错误状态码

三、 总结

Nginx 状态模块是一个简单但功能强大的工具,用于实时监控服务器的运行状态。通过合理配置和使用,可以有效帮助管理员优化服务器性能、排查问题并实现自动化监控。


http://www.niftyadmin.cn/n/5838833.html

相关文章

鸢尾花书01---基本介绍和Jupyterlab的上手

文章目录 1.致谢和推荐2.py和.ipynb区别3.Jupyterlab的上手3.1入口3.2页面展示3.3相关键介绍3.4代码的运行3.5重命名3.6latex和markdown说明 1.致谢和推荐 这个系列是关于一套书籍,结合了python和数学,机器学习等等相关的理论,总结的7本书籍…

@Inject @Qualifier @Named

Inject Qualifier Named 在依赖注入(DI)中,Inject、Qualifier 和 Named 是用于管理对象创建和绑定的关键注解。以下是它们的用途、依赖配置和代码示例的详细说明: 1. 注解的作用 Inject:标记需要注入的构造函数、字段…

基于微信小程序的4S店客户管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

Java CAS操作

通过前面的学习认识到了CPU缓存,Java内存模型,以及线程安全的原子、可见、顺序三大特性。本文则重点认识CAS操作,这是Java并发编程常见的一个操作,AbstractQueuedSynchronizer基于此操作提供了丰富的同步器和各种锁。 CAS&#x…

Big Bird:适用于更长序列的Transformer模型

摘要 基于Transformer的模型,如BERT,已成为自然语言处理(NLP)中最成功的深度学习模型之一。然而,它们的一个核心限制是由于其全注意力机制,对序列长度的二次依赖(主要是在内存方面)…

Three.js实现3D动态心形与粒子背景的数学与代码映射解析

一、效果概述 本文通过Three.js构建了一个具有科技感的3D场景,主要包含两大视觉元素: 动态心形模型:采用数学函数生成基础形状,通过顶点操作实现表面弧度。星空粒子背景:随机分布的粒子群组形成空间层次感。复合动画…

索引01之初始索引

初识索引 文章目录 初识索引一:如果从来没有过索引1:全盘扫描2:字典目录 二:索引机制概述1:MySQL索引的创建方式1.1:使用CREATE语句创建1.2:使用ALTER语句创建1.3:建表时DDL语句中创…

深度解析 DeepSeek R1:强化学习与知识蒸馏的协同力量

DeepSeek-R1 的问世,无疑在 AI 领域激起了千层浪。自发布仅一周,它便凭借卓越的性能和创新的技术,成为 AI 社区热议的焦点,代表着人工智能在推理和理解能力上的重大飞跃。今天我们一起深度解析一下DeepSeek-R1 一、强大基石&…