尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Nginx怎么配置禁止访问某个目录或文件

Nginx怎么配置禁止访问某个目录或文件
📅 发布时间:2026/6/19 11:46:48

d20ecff90dcef3ce36904d313f733707

在 Nginx 中,可以通过配置 访问控制规则 来禁止访问某个目录或文件。以下是详细的配置方法和示例,帮助你快速实现禁止访问的需求。


1. 禁止访问某个目录

如果需要禁止用户访问特定目录(例如 /uploads/private),可以通过配置 Nginx 的 location 指令实现。

示例配置:禁止访问某个目录

nginx
server {listen 80;server_name example.com;root /var/www/html;# 禁止访问 /uploads/private 目录location /uploads/private/ {deny all; # 禁止所有IP访问}location / {try_files $uri $uri/ =404;}
}
 
 

说明:

  1. location /uploads/private/:
    • 匹配 /uploads/private 目录及其子目录中的所有文件。
  2. deny all:
    • 禁止所有IP访问该目录。
  3. try_files $uri $uri/ =404;:
    • 确保其他资源正常访问。

2. 禁止访问某个文件

如果需要禁止访问特定文件类型或某些敏感文件(例如 .env 文件或 config.php),可以通过匹配文件名或文件类型来实现。

示例配置:禁止访问特定文件

nginx
server {listen 80;server_name example.com;root /var/www/html;# 禁止访问单个文件,例如 .envlocation ~ /\.env {deny all; # 禁止访问 .env 文件}# 禁止访问 config.php 文件location ~ /config\.php$ {deny all; # 禁止访问 config.php}location / {try_files $uri $uri/ =404;}
}
 
 

说明:

  1. location ~ /\.env:

    • 匹配所有以 .env 开头的文件(正则匹配)。
  2. location ~ /config\.php$:

    • 匹配 config.php 文件,$ 表示精确匹配文件名结尾。
  3. deny all:

    • 禁止所有IP访问这些文件。

3. 禁止访问多个文件类型

如果需要禁止访问某类文件(例如 .log 文件或备份文件 .bak),可以使用正则表达式匹配多个文件类型。

示例配置:禁止访问多种文件类型

nginx
server {listen 80;server_name example.com;root /var/www/html;# 禁止访问 .log 和 .bak 文件location ~ \.(log|bak)$ {deny all; # 禁止访问所有 .log 和 .bak 文件}location / {try_files $uri $uri/ =404;}
}
 
 

说明:

  • \.(log|bak)$:
    • 使用正则匹配以 .log 或 .bak 结尾的文件。
  • deny all:
    • 禁止所有IP访问这些文件。

4. 禁止访问敏感文件夹及文件并返回403页面

如果想在用户尝试访问被禁止的目录或文件时,返回标准的 403 Forbidden 页面,可以如下配置:

示例配置:返回403页面

nginx
server {listen 80;server_name example.com;root /var/www/html;# 禁止访问 /admin 和 .env 文件location /admin/ {deny all;error_page 403 /403.html; # 指定403错误页面}location ~ /\.env {deny all;error_page 403 /403.html;}# 自定义403页面location = /403.html {root /var/www/html;}location / {try_files $uri $uri/ =404;}
}
 
 

说明:

  1. deny all;:

    • 禁止访问 /admin/ 目录及 .env 文件。
  2. error_page 403 /403.html;:

    • 当用户访问被禁止的资源时,显示自定义的 403.html 页面。
  3. location = /403.html:

    • 指定自定义的 403.html 文件路径。

5. 仅允许特定IP访问目录或文件

如果需要禁止所有用户访问某个目录或文件,但允许特定IP访问,可以通过 allow 和 deny 指令实现。

示例配置:仅允许特定IP访问

nginx
server {listen 80;server_name example.com;root /var/www/html;# 禁止访问 /admin 目录,仅允许特定IP访问location /admin/ {allow 192.168.1.100; # 允许此IP访问deny all;            # 禁止其他所有IP访问}location / {try_files $uri $uri/ =404;}
}
 
 

说明:

  1. allow 192.168.1.100;:
    • 允许IP地址为 192.168.1.100 的用户访问。
  2. deny all;:
    • 禁止除允许IP以外的所有用户访问。

6. 禁止访问隐藏文件(以.开头的文件)

为防止用户访问隐藏文件(如 .git、.htaccess),可以配置禁止规则。

示例配置:禁止访问隐藏文件

nginx
server {listen 80;server_name example.com;root /var/www/html;# 禁止访问以 . 开头的隐藏文件location ~ /\. {deny all;access_log off; # 关闭访问日志log_not_found off; # 不记录404日志}location / {try_files $uri $uri/ =404;}
}
 
 

说明:

  • location ~ /\.:
    • 匹配所有以 . 开头的文件(如 .git、.env)。
  • access_log off; log_not_found off;:
    • 关闭访问日志和404日志,减少日志文件的体积。

7. 验证配置并重启Nginx

  1. 验证Nginx配置是否正确:

    bash
    nginx -t
     
     
  2. 重启Nginx服务:

    bash
    # 如果一切正常,重启Nginx服务
    systemctl reload nginx
     
     

总结

通过 Nginx 的 location 指令和 deny/allow 配置,你可以灵活地实现以下功能:

  1. 禁止访问特定目录。
  2. 禁止访问某个文件或文件类型。
  3. 返回自定义403页面。
  4. 仅允许特定IP访问敏感资源。
  5. 防止访问隐藏文件(如 .git、.env)。

根据实际需求选择合适的配置,并确保对服务器的安全性和性能进行持续优化。

 

相关新闻

  • 2025年昆明不听话学校管理权威推荐:昆明不听话孩子学校优化/昆明不听话少年学校/昆明小孩不听话学校机构精选
  • 2025 年 11 月氧气分析仪厂家权威推荐榜:高精度检测、稳定耐用与专业服务口碑之选
  • 灵芝孢子粉哪家品牌效果最佳?行业口碑之选推荐

最新新闻

  • DolphinDB Kafka数据接入:消息队列集成
  • 合肥高新区 房屋修缮|维小达|墙面/吊顶/窗户/壁纸壁布/瓷砖美缝/石材修复全屋破损翻新一站式服务 - 维小达科技
  • 跑遍广州 7 家黄金回收店!实测总结普通人通用变现公式 + 避坑指南 - 奢侈品回收评测
  • okbiye 毕业论文专项 AI 写作:重构毕业撰文全链路,消解数万学子论文创作多层桎梏
  • 西安旧黄金回收靠谱渠道推荐|2026避坑保价完整版 - 奢侈品回收测评
  • Legacy iOS Kit终极指南:3步让你的旧iPhone/iPad重获新生

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号