回答
收藏
分享
举报
当查看到本地文件不存在时,NGINX plus中是否能执行shell命令?
提问于2021-08-12 10:31

浏览 3.2k

文章标签

当查看到本地文件不存在时,NGINX plus中是否能执行shell命令?我们想当出现不存在的文件时,执行脚本主动同步,我们是有另外的job在定时同步的,不过仍然是会有时间差,就是在这个时间中访问不存在的文件时,执行主动同步,然后返回用户,而不是返回404

已修改于2023-03-17 02:24



写下您的回答
发表回答
全部回答(1)

按点赞数排序

按时间排序

不应该这么来弄,应该是结合lua/njs来做,通过njs/lua来判断文件是否存在

error_log stderr notice;
daemon off;
events { }

http {
include /usr/local/openresty/nginx/conf/mime.types;

server {
listen 80;

location @image_server {
content_by_lua_file "file_judge.lua";
}

location ~ ^/images/(?<sig>[^/]+)/(?<size>[^/]+)/(?<path>.*\.(?<ext>[a-z_]*))$ {
root cache;
set_md5 $digest "$size/$path";
try_files /$digest.$ext @image_server;
}
}

}

-- make sure the file exists
local file = io.open(source_fname)

if not file then
return_not_found()
end

file:close()

lua里面去判断文件存不存在

赞同

0

回复举报

回答于2021-08-13 10:32



回复罗剑锋
回复
提问者
NGINX官方账号
这家伙很懒还未留下介绍~
335
文章
21
问答
201
粉丝
相关问答

你可以用一台nginx做负载均衡,然后后面的几台nginx去做反向代理,这种不就相当于nginx代替了F5的角色。这种类似于F5的主备机,只不过没有那么强

点赞 0
浏览 4k

这个参数是开启redis的集群功能,发给Redis 服务器的,但连接NGINX请求就被代理了,应该是发不过去

点赞 0
浏览 3.9k

可以试试我的开源项目,在 nginx-rtmp-module 的基础上开发的,除了兼容 nginx-rtmp-module 的所有功能,并添加了 http-flv,gop 缓存,json 格式的 stat 数据等功能,还修复了 nginx-rtmp-module 本身的很多缺陷。

GitHub:https://github.com/winshining/nginx-http-flv-module

本网站:https://www.nginx.org.cn/plug/detail/227

点赞 0
浏览 4.4k