![Nginx 出现新覆盖镜像的问题](https://linux22.com/image/621422/Nginx%20%E5%87%BA%E7%8E%B0%E6%96%B0%E8%A6%86%E7%9B%96%E9%95%9C%E5%83%8F%E7%9A%84%E9%97%AE%E9%A2%98.png)
我有这个问题:
- 我直接读取(作为静态内容)来自的图像https://whatever.com/static/image.png. 图像显示正常。
- 我用另一个文件覆盖了这个文件,然后再次尝试读取它https://whatever.com/static/image.png
- 接下来发生的事情似乎是下面两件事之一,但有点随机:
a. 将显示新图像的截断版本,也就是说,除了底部的部分之外,其余部分都将显示
。b. 有时根本不提供图像并返回错误(在 Chromium 中):
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
- 如果我重新启动 nginx,图像就可以正常显示。
如果需要的话,我可以提供配置文件。
有人知道为什么会发生这种情况吗?
我注意到如果我关闭,open_file_cache
问题就不会再出现,但我仍然在寻找一种不涉及关闭文件缓存的解决方案。
答案1
我不确定这是最好的解决方案,但它对我来说很有用:
我将 nginx.conf 中的这些行更改 为 ,现在它通常可以正常工作。
open_file_cache max=5000 inactive=8h;
open_file_cache_errors on;
open_file_cache_valid 1h;
open_file_cache_min_uses 1;
open_file_cache max=8000 inactive=5m;
open_file_cache_errors on;
open_file_cache_valid 5m;
open_file_cache_min_uses 20;