nginx模块(访问,目录索引,状态监控,访问连接控制)
2022/1/5 7:04:26
本文主要是介绍nginx模块(访问,目录索引,状态监控,访问连接控制),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 访问输入用户名密码模块
- 登录IP地址需要输入用户名以及密码
- 展示目录索引
- Nginx状态监控模块
- 访问连接控制模块
- ngx_http_limit_conn_module(控制连接数)
- ngx_http_limit_req_module(用于限制每个定义的键的请求速率,限制访问量)
- ngx_http_limit_conn_module(官方模块)
- ngx_http_limit_req_module (官方模块)
-
访问输入用户名密码模块
-
ngx_http_auth_basic_module
-
登录IP地址需要输入用户名以及密码
-
1、安装httpd-tools [root@web01 ~]# yum install httpd-tools -y 2、生成用户名密码文件 [root@web01 ~]# htpasswd -c /etc/nginx/auth junjie New password: Re-type new password: Adding password for user junjie 3、将文件路径加入Nginx配置 [root@web01 ~]# vim /etc/nginx/conf.d/game4.conf auth_basic "Welcome To Login"; auth_basic_user_file /etc/nginx/auth; """ server { listen 79; server_name 192.168.1.7; auth_basic "Welcome To Login"; auth_basic_user_file /etc/nginx/auth; location / { root /opt/mairegame; index index.html; } } server { listen 81; server_name www.game1.com; location / { root /opt/xiangqigame; index index.html; } } """ 4、重启Nginx [root@web01 ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@web01 ~]# systemctl restart nginx
-
展示目录索引
- ngx_http_autoindex_module
- http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
server { server_name 192.168.15.7; listen 80; autoindex on; autoindex_exact_size on; location / { root /usr/share/nginx/; index index.html; } } # 默认均为关闭,手动添加 autoindex on;(目录索引) autoindex_exact_size on;(展示文件大小) # 产生一个5M大小的文件 [root@web01 nginx]# dd if=/dev/zero of=5M.txt bs=1M count=5 autoindex_localtime on;(将时间改为本地时间,默认东八区时间) # 默认格式html , autoindex_format html | xml | json | jsonp autoindex_format json;(将当前页面展示格式改为json格式)
-
Nginx状态监控模块
[root@web01 conf.d]# cat maire.conf server { server_name 192.168.15.7; listen 80; location / { stub_status; } } # server 中添加一个独立的location 即可 # Active connections:当前活动客户端连接数,包括waiting连接数 Active connections: 2 # accepts(接收的客户端连接总数) --> 2 # handled(处理的连接总数) --> 2 # requests(客户端请求的总数)-- 5 server accepts handled requests 2 2 5
访问连接控制模块
- ngx_http_limit_conn_module
- ngx_http_limit_req_module
- 两个模块控制速率模块
ngx_http_limit_conn_module(控制连接数)
# 官方网址 http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html 控制nginx连接 第一次访问网站一个长链接即可完成访问,不停访问连接数不断增加,此时就可以充值连接数 # 官方模块 limit_conn_zone $binary_remote_addr zone=addr:10m $binary_remote_addr: 把什么选项放进连接池(客户端IP --> $remote_addr) 调用: limit_conn addr 1;(1代表只能有一个链接) 案例: [root@web01 conf.d]# pwd /etc/nginx/conf.d [root@web01 conf.d]# ls maire.conf limit_conn_zone $remote_addr zone=addr:10m; server { server_name 192.168.15.7; listen 80; autoindex on; limit_conn addr 1; location /status { stub_status; } location / { root /opt/mairegame; index index.html; } } 手动刷新192.168.15.7的速度不够块,无法提现,此处用到ab工具(压测) 1. 安装ab测试命令 yum install httpd-tools -y 2.ab 参数 -n : 总共需要访问指定网站多少次 -c : 每次访问多少个(同时产生指定次数链接) 试试就试试: [root@web01 mairegame]# ab -n 100000 -c 200 http://192.168.15.7/ ... Complete requests: 执行总次数 Failed requests: 失败次数
ngx_http_limit_req_module(用于限制每个定义的键的请求速率,限制访问量)
# 官方网址 http://nginx.org/en/docs/http/ngx_http_limit_req_module.html # 官方模板 'limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;' req模块有两个部分: 1.连接池 连接池控制访问数量,需要有一个控制开关 limit_req_zone: 声明一个连接池 $binary_remote_addr: 把什么选项放进连接池(客户端IP --> $remote_addr) zone=one : 连接池名称 10m : 连接池大小(10兆 ) rate=1r/s:速率(每秒访问一次) limit_req_zone $remote_addr zone=one:10m rate=1r/s; 声明连接池 变量 名称 连接池的大小 速率 limit_req_zone 的优先级 全局 > http > server > location 调用: limit_req zone=one burst=5; burst=5(限定次数不可超过五次) 案例: [root@web01 conf.d]# cat maire.conf limit_req_zone $remote_addr zone=one:10m rate=1r/s; server { server_name 192.168.15.7; listen 80; autoindex on; location /status { stub_status; } limit_req zone=one burst=5; location / { root /opt/mairegame; index index.html; } } 快速刷新由于限制访问将会报503错误,被控制了访问量,不允许访问过多次数 [root@web01 mairegame]# ab -n 100000 -c 200 http://192.168.15.7/ ... Complete requests: 执行总次数 Failed requests: 失败次数 Complete requests: 100000 Failed requests: 99985 2.限制数 调用连接池时会有限制数
ngx_http_limit_conn_module(官方模块)
http { limit_conn_zone $binary_remote_addr zone=addr:10m; ... server { ... location /download/ { limit_conn addr 1; }
ngx_http_limit_req_module (官方模块)
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ... server { ... location /search/ { limit_req zone=one burst=5; }
这篇关于nginx模块(访问,目录索引,状态监控,访问连接控制)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享