Gol*_*den 10 caching nginx static-content
我有一个在Docker容器中运行的Nginx,它提供了一些静态文件.这些文件在运行时永远不会改变 - 如果它们确实发生了变化,容器将被停止,图像将被重建,并且将启动一个新的容器.
因此,为了提高性能,如果Nginx只从磁盘读取静态文件一次,然后永久地从内存中将其服务,那将是完美的.我找到了一些配置选项来配置缓存,但至少从我所看到的,他们都没有提供我正在寻找的"永远"行为.
这有可能吗?如果是这样,我如何配置Nginx来实现这一目标?
Nginx作为HTTP服务器无法对静态文件或页面进行内存缓存。
Nginx是功能强大且成熟的HTTP和代理服务器。但是关于缓存的功能似乎有些混乱。作为纯Web服务器运行时,Nginx服务器无法对文件进行内存缓存。然后……等什么!?让我改一下:Nginx HTTP服务器无法内存缓存文件或页面。
可能的解决方法
Nginx社区的答案是:没问题,让操作系统为您完成内存缓存!该操作系统是由聪明人编写的(是真的),并且知道缓存的内容,时间,位置和方式(仅是一种意见)。因此,他们说,定期将您的静态文件保存到/ dev / null,然后信任它可以为您缓存内容!对于那些想知道和思考的人,cat / dev / null引用与缓存有什么关系?请继续阅读以了解更多信息(提示:不要这样做!)。
它是如何工作的?
事实证明,Linux是一种经过微调的野兽,它对缓存中的内容进出了鹰眼。那个缓存东西叫做页面缓存。页面缓存是将经常访问的文件部分或全部存储在其中的内存存储,以便可以快速访问它们。内核负责跟踪缓存在内存中,何时需要更新或何时需要驱逐的文件。可用的可用内存越多,页面缓存越大,缓存就“越好”。
请参考下图以了解更多深度说明:
参考和进一步阅读- 这里
| 归档时间: |
|
| 查看次数: |
6159 次 |
| 最近记录: |