Nginx Proxy Manager访问控制列表(ACL)配置:限制IP与用户访问
【免费下载链接】nginx-proxy-manager 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-proxy-manager
你是否还在为服务器安全担忧?是否需要精准控制谁能访问你的网站?Nginx Proxy Manager的访问控制列表(ACL)功能可以帮你轻松实现IP限制与用户认证,一文解决你的访问权限管理难题。读完本文,你将学会创建访问列表、配置IP白名单/黑名单、设置用户密码认证,以及如何将这些规则应用到代理主机,全面提升服务安全性。
什么是访问控制列表(ACL)
访问控制列表(ACL,Access Control List)是Nginx Proxy Manager提供的一项安全功能,用于限制对特定资源的访问。通过ACL,你可以根据IP地址或用户认证信息,允许或拒绝访问请求。这对于保护内部服务、限制敏感资源访问非常有用。
Nginx Proxy Manager的ACL功能主要通过两个模块实现:
- backend/internal/access-list.js:处理ACL的创建、更新、删除等核心逻辑
- backend/templates/_access.conf:生成Nginx访问控制配置文件
ACL的工作原理
ACL的工作流程可以用以下流程图表示:
当请求到达Nginx时,会先检查是否应用了ACL规则。如果有,Nginx会按照预设的规则顺序进行检查:先检查IP是否在允许列表,再检查是否在拒绝列表,最后检查是否需要用户认证。只有通过所有检查的请求才会被允许访问。
创建访问控制列表
访问列表管理界面
在Nginx Proxy Manager的Web界面中,访问列表管理界面由frontend/js/app/nginx/access/main.ejs文件定义。该界面提供了搜索、添加、编辑和删除访问列表的功能。
创建访问列表的步骤
- 登录Nginx Proxy Manager管理界面
- 点击左侧导航栏的"访问列表"选项
- 点击"添加"按钮,打开创建访问列表表单
- 填写访问列表名称,例如"办公网络访问"
- 配置访问规则(IP限制和用户认证)
- 点击"保存"按钮
配置IP限制
IP限制的类型
Nginx Proxy Manager支持两种IP限制类型:
- 允许(allow):只允许指定IP访问
- 拒绝(deny):拒绝指定IP访问
这些规则会被转换为Nginx配置,例如:
allow 192.168.1.0/24;
deny 10.0.0.1;
配置IP规则
在创建或编辑访问列表时,可以添加IP规则:
- 在"客户端"部分,点击"添加客户端"
- 输入IP地址或CIDR网段,例如"192.168.1.0/24"
- 选择"允许"或"拒绝"指令
- 点击"保存"
backend/internal/access-list.js文件中的create和update方法处理IP规则的保存逻辑,将规则存储到数据库中。
配置用户认证
用户认证的作用
用户认证要求访问者输入用户名和密码才能访问资源。这对于保护敏感信息非常有用,即使IP地址被允许,也需要正确的凭据才能访问。
添加用户认证
- 在访问列表编辑页面,找到"认证"部分
- 点击"添加用户"
- 输入用户名和密码
- 点击"保存"
系统会使用htpasswd工具生成加密的密码文件,存储在/data/access/[list_id]路径下,如backend/internal/access-list.js的build方法所示:
getFilename: (list) => {
return '/data/access/' + list.id;
},
组合IP限制和用户认证
Nginx Proxy Manager允许你组合IP限制和用户认证,通过"满足条件"选项控制两者的关系:
- 满足所有(satisfy all):需要同时满足IP规则和用户认证
- 满足任一(satisfy any):满足IP规则或用户认证其一即可
这一功能在backend/templates/_access.conf中实现:
# Access checks must...
{% if access_list.satisfy_any == 1 %}
satisfy any;
{% else %}
satisfy all;
{% endif %}
将ACL应用到代理主机
创建好ACL后,需要将其应用到代理主机才能生效:
- 编辑或创建代理主机
- 在"高级"选项卡中,找到"访问列表"
- 选择你创建的访问列表
- 点击"保存"并应用Nginx配置
ACL配置示例
示例1:只允许特定IP访问
创建一个访问列表,添加以下IP规则:
- 允许 192.168.1.0/24
- 拒绝 all
将此ACL应用到代理主机后,只有192.168.1.0网段的用户可以访问。
示例2:IP白名单+用户认证
创建一个访问列表:
- 添加IP规则:允许 10.0.0.0/8
- 添加用户:admin/123456
- 设置"满足所有"
这样,只有10.0.0.0网段的用户,并且输入正确的用户名密码才能访问。
常见问题解决
ACL规则不生效
如果配置的ACL规则没有生效,可以检查以下几点:
- 是否正确将ACL应用到代理主机
- Nginx配置是否已重新加载
- 规则顺序是否正确(允许规则应在拒绝规则之前)
- 查看Nginx错误日志,路径通常为
/var/log/nginx/error.log
如何批量管理IP规则
对于大量IP规则,可以通过backend/models/access_list_client.js模型直接操作数据库,批量导入IP规则。
总结
通过Nginx Proxy Manager的ACL功能,你可以轻松实现细粒度的访问控制。无论是限制特定IP访问,还是要求用户认证,都能通过直观的Web界面完成配置。结合IP限制和用户认证,你可以构建多层次的安全防护体系,有效保护服务器资源。
现在,你已经掌握了ACL的全部配置方法,快去登录你的Nginx Proxy Manager,为你的代理主机添加访问控制规则吧!如果你有任何问题,欢迎在评论区留言讨论。
点赞+收藏+关注,获取更多Nginx Proxy Manager使用技巧!下期我们将介绍SSL证书的自动更新配置,敬请期待。
【免费下载链接】nginx-proxy-manager 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-proxy-manager
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



