问题背景
某个环境想提供一个web给指定的机器来下载文件,但是网络经过了多级代理以及nat,所以ip地址很可能无法正常的识别,如果使用 allow 的这种指令针对 ip 地址做限制和开放,那么几乎是实现不了的,那么我们还有什么办法呢?
使用第三方的模块,或者简单认证模块都是可以的,但是如果nginx服务器不好传文件,或者想要的速度比较快,那么还有没有更简单的限制措施呢?
简单方案
我们可以借鉴 http 请求中 Token 的方式,要求在 URI 中增加类似的头部,这样的话可以实现简单快速的鉴权方案,示例如下:
if ( $arg_token != '111111') {
return 401;
}
这里用到的方法是, nginx可以根据 $arg_参数名 实现获取 URI 的参数内容,最后我们利用这个功能实现权限的判断
评论