nginx访问控制 —— deny_allow

本文详细介绍了Nginx中的deny和allow指令,包括它们的作用、语法以及使用示例,重点讲解了如何通过这两个指令限制不同IP地址和URI的访问权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nginx访问控制 —— deny_allow

1).allow和deny介绍:

nginx的deny和allow指令是由ngx_http_access_module模块提供,Nginx安装默认内置了该模块。

除非在安装时有指定 --without-http_access_module。

语法:allow/deny address | CIDR | unix: | all

它表示允许/拒绝某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问。注意:unix在1.5.1中新加入的功能。

在nginx中,allow和deny的规则是按顺序执行的。

2).allow和deny使用示例:

示例1:

location /

{

    allow 192.168.0.0/24;

    allow 127.0.0.1;

    deny all;

}

说明:这段配置值允许192.168.0.0/24网段和127.0.0.1的请求,其他来源IP全部拒绝。

示例2:

location ~ "admin"

{

    allow 110.21.33.121;

    deny all

}

说明:访问的uri中包含admin的请求,只允许110.21.33.121这个IP的请求。

参考链接: https://github.com/aminglinux/nginx/blob/master/access/deny_allow.md  

### 使用 Zabbix 监测 Nginx 的案例与配置 #### 1. 环境准备 在使用 Zabbix 监控 Nginx 前,需确保已安装并正确配置好 Zabbix Server 和 Agent[^1]。此外,还需确认目标服务器上的 Nginx 已启用 `stub_status` 模块,并开放访问接口。 以下是典型的 Nginx 配置片段: ```nginx location /status { stub_status on; access_log off; allow 127.0.0.1; # 允许本地访问 deny all; # 拒绝其他 IP 访问 } ``` #### 2. 编写状态查询脚本 创建一个 Bash 脚本来获取 Nginx 的实时状态信息。此脚本可通过命令行参数指定要提取的状态字段(如 reading、writing 或 waiting),并通过 `curl` 获取数据[^2]。 脚本路径:`/scripts/nginx.sh` ```bash #!/bin/bash case $1 in "reading") curl -s http://localhost/status | awk 'NR==3{print $2}' ;; "writing") curl -s http://localhost/status | awk 'NR==3{print $4}' ;; "waiting") curl -s http://localhost/status | awk 'NR==3{print $6}' ;; esac ``` 赋予执行权限: ```bash chmod +x /scripts/nginx.sh ``` #### 3. 修改 Zabbix Agent 配置文件 将自定义脚本集成到 Zabbix 中,通过修改 `/usr/local/etc/zabbix_agentd.conf` 文件实现[^3]: 添加如下内容: ```conf UserParameter=nginx_status[*],/bin/bash /scripts/nginx.sh $1 ``` 重启 Zabbix Agent 生效更改: ```bash pkill zabbix_agentd && systemctl start zabbix-agent ``` #### 4. 测试连接 在 Zabbix Server 上验证新监控项是否正常工作: ```bash zabbix_get -s <Agent_IP> -k nginx_status[reading] zabbix_get -s <Agent_IP> -k nginx_status[writing] zabbix_get -s <Agent_IP> -k nginx_status[waiting] ``` 如果返回预期数值,则说明配置成功[^2]。 #### 5. 创建监控项 登录至 Zabbix Web 界面完成最后一步设置——新增对应于上述键名的监控项目。具体操作流程包括但不限于进入“模板”-> “发现规则”,或者手动输入名称和键值对来建立关联关系[^4]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维实战课程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值