2016-08-07 2 views
4

У меня есть Nginx, работающий в контейнере Docker, и он обслуживает некоторые статические файлы. Файлы будут never изменить во время выполнения - если они действительно будут меняться, контейнер будет остановлен, изображение будет перестроено, и новый контейнер будет запущен.Кэш статического файла в памяти навсегда на Nginx?

Итак, чтобы улучшить производительность, было бы идеально, если бы Nginx прочитал статические файлы только один раз с диска, а затем навсегда запустил его из памяти. Я нашел некоторые параметры конфигурации для настройки кэширования, но, по крайней мере, из того, что я видел, никто из них не обеспечил такое поведение «навсегда», которое я ищу.

Возможно ли это вообще? Если да, то как мне нужно настроить Nginx для этого?

+0

Наверное, я уже пытался это ответить? http://stackoverflow.com/a/20026096/90800 –

+0

Нет, но это было именно то, что я искал (и то, что я не смог найти). Итак, если вы передадите свой комментарий в ответ, я с радостью приму его. Благодаря :-)! –

+0

Это снова я: Извините, но я не уверен, что это действительно то, что я искал: если я получу это правильно, это позволит кэшировать на стороне клиента, но я ищу кэширование на сервер (я не хочу, чтобы Nginx касался файловой системы более одного раза). Это достигается этим, или я что-то упустил? –

ответ

3

Операционная система выполняет кэширование по умолчанию по умолчанию. Это называется page cache. Кроме того, вы можете включить sendfile, чтобы избежать копирования данных между пространством ядра и пользовательским пространством.

+0

Итак, другими словами: мне не нужно ничего делать, чтобы получить поведение, которое я хочу? –

+1

Правильно. Если у вас достаточно памяти для кэширования файла, он будет кэшироваться от OS. – VBart

+0

Эй, парень, спасибо :-) –

Смежные вопросы