请教一个配置相关问题

2022-10-27 00:34:46 +08:00
 auun

请教各位大佬,服务器上有一个文件,我想让他只允许指定 ua 才能下载要怎么设置?

就是只有指定 ua 可以访问这个文件,使用其他客户端或者浏览器访问就报错

请求 URL: https://域名 /文件名.conf

文件存放在:/www/wwwroot/test 目录下

完整路径:/www/wwwroot/test/文件名.conf

具体效果

只有 ua 中包涵关键词,才能访问,否则报 404

我没用过 nginx ,所以不会搞,麻烦大佬帮帮忙

1038 次点击
所在节点    NGINX
2 条回复
auun
2022-10-27 00:50:36 +08:00
补充:我在搜索引擎上找了好久都没找到解决方案
wdssmq
2022-10-27 08:43:33 +08:00
Nginx 限制 ua - 搜索
https://cn.bing.com/search?q=Nginx+%E9%99%90%E5%88%B6+ua

↓ 至少在我这里第一条结果就是下边这篇,,(竟然不是 csdn ,不容易)

nginx 禁止特定 UA 访问 - hjqjk - 博客园
https://www.cnblogs.com/hjqjk/p/6028775.html

在程序逻辑上,「禁止」和「仅允许」就是个符号的区别,事实上,,该文也有说怎么设置白名单,,

---

补充:

观察一阵子后,发现还有禁止 UA 为空的访问和放行内网 ip 不做禁止的需求。

nginx 的配置中不支持 if 条件的逻辑与、逻辑或运算 ,并且不支持 if 的嵌套语法,但我们可以使用变量达到想要的效果。


# 白名单:192.168.1
# 禁止特定 UA 和 UA 为空的访问

set $flag 0;

if ($remote_addr !~ "^(192.168.1)"){
set $flag "${flag}1";
}

if ($http_user_agent ~ "Lua|^$"){
set $flag "${flag}2";
}

if ($flag = "012"){
return 403;
}

-----

「知识」领域内,很多东西真的能用搜索引擎找到并且是免费的,,如果你是不懂怎么将「知识」化为己用,这边建议付费。。

QQ 及验证:UVHvvJozNDk0Njc2MjQg6aqM6K+B562U5qGI77yaMTg5NTc0Njgz

下边是我研究过的类似需求

「笔记」.htaccess 及 nginx.conf 可用变量一览_电脑网络_沉冰浮水
https://www.wdssmq.com/post/20220301043.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/890205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX