Nginx 下限定只能访问某个目录

### 配置Nginx实现路径访问限制 #### 使用基于IP的访问控制 对于希望仅允许来自特IP地址的客户端访问某个路径的情况,可以在`location`块内使用`allow`和`deny`指令来设置。当遇到未授权的访问尝试时,服务器会返回401 Unauthorized错误响应给客户端[^4]。 ```nginx http { ... server { listen 80; server_name localhost; location /protected_path/ { allow 192.168.1.1; # 允许此单一IP访问 deny all; # 拒绝其他所有IP auth_basic "Restricted"; # 设置基本认证提示信息 auth_basic_user_file htpasswd.file; # 用户名密码文件位置 } ... } } ``` 上述配置示例展示了如何限对`/protected_path/`目录下的资源仅有来自`192.168.1.1`这台机器上的请求可以成功获取数据;而任何其他的连接都将被拒绝并收到相应的HTTP状态码通知。 #### 基于请求方法的访问权限管理 除了通过源IP来进行筛选外,还可以依据不同的HTTP动词(即请求的方法)实施更细粒度的安全策略。例如,在处理静态页面读取(`GET`)的同时阻止任何形式的数据提交操作(`POST`, `PUT`等),从而保护敏感接口不受恶意攻击的影响[^3]。 ```nginx location /api/v1/resource { limit_except GET HEAD { # 只允许GET,HEAD两种类型的请求 deny all; # 对其余类型一律拒之门外 } proxy_pass http://backend_server; # 正常情况下转发至后端服务 } ``` 这段代码片段说明了针对API endpoint `/api/v1/resource`只接受浏览器发出的标准浏览命令(GET 和 HEAD), 而对于写入性质的动作则统一给予否答复。 完成以上任意一种形式的更改之后,请记得保存所做的编辑,并执行以下命令验证语法正确性和应用最新的设: ```bash cd /usr/local/nginx ./sbin/nginx -t # 测试配置文件是否有误 ./sbin/nginx -s reload # 平滑重启使新规则生效 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值