'正在尝试寻找如何使用 nginx 提供缓存文件的方法。
我已将搜索结果存储到共享内存中的 json 文件中。下次当用户尝试查找相同的搜索时,它应该由 nginx 通过 try_files 指令提供服务。
这是请求字符串:
/api/ajax-ticker-search?search=SBER
以下是我在 nginx 中所拥有的:
location /api/ajax-ticker-search/ {
try_files /dev/shm/searchResults/$arg_search.json @apisearch;
}
我确实有名为的文件SBER.json
,/dev/shm/searchResults
但是 nginx 没有提供该文件,总是回到@apisarch
原来的位置。
try_files 有什么问题?如何使其工作并提供存储的 json 文件?
答案1
好的,我已经设法让它工作了,但仍然不明白如何操作。
工作配置如下:
location /api/ajax-ticker-search {
root /dev/shm/search;
try_files /$arg_search @apisearch;
}
我做了什么:
将文件从
searchResults
一个文件夹移动到search
另一个文件夹(没有驼峰式文件夹?);将
root
指令放在try_files
try_files 指令中的文件名之前,现在只是/$arg_search
而不是/dev/shm/search/$arg_search
。(必须设置根?)删除
.json
扩展(以防万一)
我不知道这些中哪一个真正有帮助,但现在它起作用了,我可以将 PHP 的搜索结果直接缓存到文件中,然后由 nginx 读取。