在 Nginx 中,你可以通过多种方式禁止对特定目录或文件的访问。以下是几种常见的配置方法:
location /private/ {
deny all;
return 403;
}
这个配置会禁止访问 /private/
目录及其所有子目录和文件,返回 403 Forbidden 状态码。
location ~* \.(conf|sql|log|htaccess)$ {
deny all;
return 403;
}
这个配置会禁止访问 .conf
, .sql
, .log
, .htaccess
等敏感文件。
location ~ /\. {
deny all;
return 403;
}
location ~ ^/(config|backup)/ {
deny all;
return 403;
}
这会禁止访问 /config/
和 /backup/
目录。
location = /secret.txt {
deny all;
return 403;
}
location /admin/ {
allow 192.168.1.0/24; # 只允许特定IP段访问
deny all; # 拒绝其他所有访问
return 403;
}
配置修改后,需要重新加载 Nginx 配置使其生效:
nginx -s reload
这些配置通常应该放在 server
块中。
如果使用 PHP 或其他后端处理程序,可能需要额外的安全措施,因为这些文件可能通过后端而非 Nginx 直接访问。
对于重要的安全限制,建议在应用层面也实现相应的访问控制。
可以使用 return 404;
代替 return 403;
来隐藏文件/目录的存在(返回 Not Found 而非 Forbidden)。