有没有办法仅当存在某些自定义标头并且值匹配时才允许访问目录?对于 apache,我一直使用 SetEnvIf 来实现。我怎样才能用 nginx 做到这一点?
基本上我有一个只能由我访问的开发服务器,但我有动态IP并且必须每天更改配置文件。使用 apache,我只需将浏览器设置为发送一个类似于访问密码的自定义标头,如果该标头值正确,apache 将允许访问。
小智 7
我做了很多研究来解决一个简单的问题:如果请求在标头中具有特定令牌,则仅允许 proxy_pass 。我尝试了这里所有的答案,但没有一个像我喜欢的那样有效。我的最终解决方案是:
location /api {
proxy_http_version 1.1;
if ($http_authorization != "Bearer 1234") {
return 401;
}
proxy_pass http://app:3000/;
}
Run Code Online (Sandbox Code Playgroud)
参考:
https://www.nginx.com/resources/wiki/start/topics/深度/ifisevil/
您的实际问题在这里得到解答:
话虽如此,为什么不使用基本身份验证呢?这使它成为一个密码,而不是像密码一样。
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
| 归档时间: |
|
| 查看次数: |
27076 次 |
| 最近记录: |