我有一个 nginx 缓存服务器,我想创建一个被阻止文件的列表。 我希望这些文件位于目录 /etc/nginx/blocked_files.txt 中
文件都在/forums/data/attachments/下,然后分成不同的子目录,最后是文件。 一个例子: /论坛/数据/附件/3787/3787263.jpg
我尝试配置地图,但效果不佳,配置如下:
在 nginx.conf 中
map $request_uri $block_file {
default 0;
include /etc/nginx/blocked_files.txt;
}
默认在站点可用
location /forums/data/attachments/ {
if ($block_file) {
return 403;
}
}
在blocked_files.txt 文件中我必须输入1;以避免“搞乱”地图。
问题是 /forums/data/attachments/ 内的所有文件都不起作用。
我确信这个想法是正确的,但应用得很糟糕......
谢谢
您的
blocked_files.txt
应如下所示:
/images/test1.jpg 1;
/images/test2.jpg 1;
/images/test3.jpg 1;
其中
/images/....jpg
是完整的request_uri
D:\nginx-1.27.2> curl -I http://localhost:8088/images/test2.jpg
HTTP/1.1 403 Forbidden
Server: nginx/1.27.2
Date: Fri, 15 Nov 2024 19:28:17 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive
D:\nginx-1.27.2> curl -I http://localhost:8088/images/abc.jpg
HTTP/1.1 200 OK
Server: nginx/1.27.2
Date: Fri, 15 Nov 2024 19:28:00 GMT
Content-Type: image/jpeg
....