我试图编写一个进程,使nginx上的caching无效(并且不会重新加热caching)。
默认情况下,nginx的caching文件有700个。 我能find的最接近的地方是:
proxy_store_access user:rw group:rw all:r;
但是,这适用于代理商店,而不是caching。
那么,我该如何告诉nginx创buildcaching文件为777?
我目前在Ubuntu 12上运行nginx / 1.5.8。
好吧,为了回答你的具体问题,你需要设置umask为000.如果你愿意,我可以给你这些指示。 但我不认为这是你想要的。 认真。
顺便说一下,proxy_store_accessconfiguration会影响由proxy_store和proxy_cache系统创build的文件(我在源代码中检查过)。
我不是故意的,但我不认为你想要做你的build议。 我怀疑你想要定期清理你的nginx chache。 如果你看看这里的文档: http : //nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path,你会看到有nginx应该处理你的caching无效,以保持在一定的大小。
现在,如果你仍然想写一个无效的过程(我假定你的意思是删除)caching,这里有一个不同的选项。 如果这是作为一个cronjob运行,把它放在nginx用户的crontab中。 另外,还有一些方法可以使用sudo让某人有限的访问权限。 最后,如果你真的编码一个特殊的程序,然后看看可执行文件中的setuid(又名suid)位。
祝你好运。 这有帮助吗?
无论如何,重点是毫无意义的。
根据这个答案和Igor Sysoev (nginx的作者) 的论坛post,单独删除caching文件不足以清除caching,因为共享内存。
所以,我放松了我的一个要求,并允许通过预热来清除caching。 我现在使用Pragma: no-cache头进行https请求。
理想情况下,我不需要预热它来清除caching。 但是,我没有解决scheme只清除给定的URIcaching。