Nginx try_files 名称来自查询

Nginx try_files 名称来自查询

'正在尝试寻找如何使用 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_filestry_files 指令中的文件名之前,现在只是/$arg_search而不是/dev/shm/search/$arg_search。(必须设置根?)

    • 删除.json扩展(以防万一)

我不知道这些中哪一个真正有帮助,但现在它起作用了,我可以将 PHP 的搜索结果直接缓存到文件中,然后由 nginx 读取。

相关内容