Nginx基础-常用模块配置
1.Nginx状态监控
http_stub_status_module记录Nginx客户端基本访问状态信息
location /mystatus {
stub_status on;
access_log off;
}
#Nginx_status概述
Active connections:2 //Nginx当前活跃连接数
server accepts handled requests
16 16 19
server表示Nginx启动到现在共处理了16个连接。
accepts表示Nginx启动到现在共成功创建16次握手。
请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。
handled requests,表示总共处理了19次请求。
Reading Nginx读取到客户端的 Header 信息数。
Writing Nginx返回给客户端的 Header 信息数。
Waiting Nginx开启keep-alive长连接情况下, 既没有读也没有写, 建立连接情况
2.Nginx下载站点
Nginx默认是不允许列出整个目录浏览下载。
1)autoindex常用参数
autoindex_exact_size off;
默认为on, 显示出文件的确切大小,单位是bytes。
修改为off,显示出文件的大概大小,单位是kB或者MB或者GB。
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
修改为on, 显示的文件时间为文件的服务器时间。
charset utf-8,gbk;
默认中文目录乱码,添加上解决乱码。
配置目录浏览功能
2)开启目录浏览
location / {
root html;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
3.Nginx访问限制
连接频率限制 limit_conn_module
请求频率限制 limit_req_module
1)Nginx连接限制配置:
http {
#http段配置连接限制, 同一时刻只允许一个客户端IP连接
limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
...
server {
...
location / {
#同一时刻只允许一个客户端IP连接
limit_conn conn_zone 1;
}
}
}
#压力测试
yum install -y httpd-tools
ab -n 50 -c 20 http://127.0.0.1/index.html
2)Nginx请求限制配置:
http {
#http段配置请求限制, rate限制速率,限制一秒钟最多一个IP请求
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;
...
server {
...
location / {
#1r/s只接收一个请求,其余请求拒绝处理并返回错误码给客户端
limit_req zone=req_zone;
#请求超过1r/s,剩下的将被延迟处理,请求数超过burst定义的数量, 多余的请求返回503
#limit_req zone=req_zone burst=3 nodelay;
}
}
}
#压力测试
yum install -y httpd-tools
ab -n 50 -c 20 http://127.0.0.1/index.html
4.Nginx访问控制
基于IP的访问控制 http_access_module
基于用户登陆认证 http_auth_basic_module
1)基于IP的访问控制
#配置拒绝某一个IP, 其他全部允许
location ~ ^/1.html {
root html;
index index.html;
deny 192.168.56.1;
allow all;
}
#只允许某一个网段访问,其它全部拒绝
location / {
root html;
index index.php index.html index.htm;
allow 192.168.56.0/24;
deny all;
}
2)基于用户登陆认证
#需要安装依赖组件
yum install httpd-tools
htpasswd -c /etc/nginx/auth_conf example
#可在http,server,location下添加如下信息
auth_basic "Auth access Blog Input your Passwd!";
auth_basic_user_file /etc/nginx/auth_conf;
用户认证局限性
1.用户信息依赖文件方式
2.操作管理机械,效率低下
解决办法
1.Nginx结合LUA实现高效验证
2.Nginx结合LDAP, 利用nginx-auth-ldap模块
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?