当前位置: 首页 > news >正文

33Nginx模块的从配置与优化

nginx常用模块

nginx区块关系有三级:

1:nginx.conf文件中的http模块在全局生效

2:指定业务配置文件下的server模块,对当前的server和location生效

3:location中的配置只对location中生效

用户名密码登录验证模块

auth_basic # 描述信息

auth_basic_user_file # 指定用户和密码文件所在的路径

配置流程:

1,安装htpasswd,密码文件需要用htpasswd生成

yum -y install httpd-tools

2,生成密码文件,用户123,密码456

[root@123456 conf.d]# htpasswd -b -c /etc/nginx/auth_pass 123 456
Adding password for user 123

3,配置nginx

    location /download {alias /package;auth_basic "test";auth_basic_user_file /etc/nginx/auth_pass;   
}


IP地址限制模块:

1,先允许,后拒绝:

allow 192.168.74.8;
deny  all;

}location /download {alias /package;auth_basic "test";auth_basic_user_file /etc/nginx/auth_pass;allow 192.168.74.8;deny all;
}

2,先拒绝,后允许

deny 192.168.74.8;
allow  all;

}location /download {alias /package;auth_basic "test";auth_basic_user_file /etc/nginx/auth_pass;deny 192.168.74.8;allow all;
}

nginx状态模块:

以用于查看 Nginx 的基本运行状态信息,通常称为 nginx_status

状态信息解释:

• Active connections:当前活跃的连接数

• accepts:总接受的连接数

• handled:总处理的连接数(通常与 accepts 相同,除非达到资源限制)

• requests:总处理的请求数

• Reading:正在读取客户端请求的连接数

• Writing:正在向客户端发送响应的连接数

• Waiting:处于空闲状态、等待客户端请求的连接数(keep-alive 连接)

配置流程

打开conf文件,新建一个location模块,写入stub_status,nginx_status不需要存在

    location /nginx_status {stub_status;
}[root@123456 etc]# curl game1.com/nginx_status
Active connections: 1 
server accepts handled requests16 16 66 
Reading: 0 Writing: 1 Waiting: 0 

请求,连接限制模块:

limit_conn_zonelimit_req_zone是定义语句,需要写入主配置文件nginx.conf中的http模块

limit_conn_zone定义语法:

limit_conn_zone  键变量 空间:大小;例

limit_conn_zone  $binary_remote_addr zone=conn_limit:10m;
注意$binary_remote_addr 是最常用的,表示二进制ip

limit_req_zone定义语法:

limit_conn_zone  键变量 空间:大小  限制速率,例

llimit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;

这句话代表一秒最多一个ip请求

[root@123456 nginx]# vim nginx.conf http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;limit_conn_zone $binary_remote_addr zone=conn_limit:10m;limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;include /etc/nginx/conf.d/*.conf;
}

主文件配置完成,接下来来到具体业务文件

limit_conn   conn_limit 1     #连接限制,限制同时最高1个连接

imit_req zone=req_zone burst=3 nodelay;# 请求超过1r/s,剩下的将被延迟处理,请求数超过burst定义的数量, 多余的请求返回503

[root@123456 conf.d]# vim game1.conf server {listen         192.168.74.128:80;server_name game1.com;#access_log  /var/log/nginx/host.access.log  main;root /code/;limit_conn conn_limit 1;-----------------------------------------最大一个连接limit_req zone=req_zone burst=3 nodelay;-------------------------请求超过1r/s,剩下的将被延迟处理,请求数超过burst定义的数量, 多余的请求返回503location / {#index  index.html index.htm;}location /nginx_status {stub_status on;}location /download {alias /package;auth_basic "test";auth_basic_user_file /etc/nginx/auth_pass;allow 192.168.74.8;deny all;
}

开启目录模块

autoindex on 是 Nginx 中用于开启目录浏览功能的指令,当访问的路径是一个目录且没有默认索引文件(如 index.html)时,Nginx 会自动生成该目录的文件列表页面,方便用户查看目录中的文件。

第一步:在块中开启autoindex on,可以加入一些参数方便阅读

charset utf-8,gbk; # 字符集解决中文乱码问题
alias /package;
autoindex on; # 开启目录列表 将代码目录下的index.html移除
autoindex_localtime on; # 以系统时间为准显示浏览器autoindex_exact_size off; # 人类可读文件大小

第二部:把 index 指令指定的文件(如 index.html)移除,就可显示目录

 location匹配规则

1.等号    =
2.以开头   ^~
3.区分大小匹配   ~*
4.不区分大小写   ~*
5.默认匹配  /

这是我的个人学习笔记,主要用于记录自己对知识点的理解和梳理。由于目前仍在学习探索阶段,内容中难免存在理解偏差或表述疏漏,恳请各位大佬不吝赐教,多提宝贵意见~ 若有不同看法,欢迎理性交流探讨,感谢包容与指正!


http://www.dtcms.com/a/326698.html

相关文章:

  • 如何使用curl编程来下载文件
  • MacBook 本地化部署 Dify 指南
  • AIDL简单使用
  • 【接口自动化测试】---YAML、JSON Schema
  • 逐际动力开源运控 tron1-rl-isaacgym 解读与改进
  • VMD例程(Matlab 2021b可直接使用)
  • 从“目标烂尾”到“100%交付”:谷歌OKR追踪系统如何用“透明化+强问责”打造职场责任闭环
  • 小白入门指南:Edge SCDN 轻松上手
  • Dify 从入门到精通(第 28/100 篇):Dify 的多租户架构
  • 【学习嵌入式day-21-Linux编程-shell命令】
  • 第九篇:调试工具:Three.js Inspector使用
  • 武汉火影数字|VR大空间是什么?如何打造VR大空间项目
  • 【华为机试】648. 单词替换
  • SciChart图形库应用
  • 专题:2025人形机器人与服务机器人技术及市场报告|附130+份报告PDF汇总下载
  • TCGA数据集下载工具gdc-client下载慢解决方案
  • mysql参数调优之 innodb_buffer_pool_size和innodb_buffer_pool_instances (三)
  • Java AI生成长篇小说的实用
  • VirtualBox虚拟机网卡配置
  • NR,LTE基于CSI的PMI-RI码本选择
  • 【算法训练营Day23】贪心算法part1
  • nginx高新能web服务器
  • UVM验证—UVM 简述
  • 从0-1搭建webpack的前端工程化项目
  • MySQL杂项
  • OpenBMC中phosphor-dbus-interfaces深度解析:架构、原理与应用实践
  • 安装AI高性能推理框架llama.cpp
  • Untiy_SpriteShape
  • VSCode编辑器常用24款基础插件
  • QT QVersionNumber 比较版本号大小