Как сбросить кэш nginx

Обновлено: 05.07.2024

Если у вас в Nginx настроено кэширование с помощью параметра fastcgi_cache , то вы наверняка задумывались над реализацией функции, которая каждый раз при обновлении страниц сайта выполняла бы автоматическую очистку. Для этих целей в Nginx предусмотрена штатная директива fastcgi_cache_purge , которая задает условия для использования запроса на очистку кэша.

Проблема заключается в том, что использование директивы fastcgi_cache_purge доступно только как часть коммерческой подписки Nginx. Как альтернативное решение я предлагаю использовать модуль ngx_cache_purge . Нужно отметить, что кроме fastcgi модуль поддерживает очистку Proxy, SCGI и uWSGI кэш в Nginx.

Для очистки кэша на стороне CMS должна работать специальная функция, которая при каждом обновлении будет отправлять серверу специально сформированных запрос. В этой статье я расскажу о использовании директивы fastcgi_cache_purge на примере WordPress, для которого уже есть готовый плагин.

Чтобы добавить поддержку директивы fastcgi_cache_purge нам необходимо собрать Nginx из исходников. В своей предыдущей статье я уже описывал процесс сборки Nginx из исходников. Из этой инструкции вам необходимо выполнить все пункту предшествующие процессу сборки пакета. Если кратко, то у вас должны быть загружены исходники Nginx и все необходимы для сборки пакеты.

Далее загружаем и распаковываем исходники модуля ngx_cache_purge :

Откройте файл, отвечающий за параметры сборки пакета:

В этом файле нужно найдти секцию override_dh_auto_build и добавить в конец директиву --add-module , которая указывает на директорию размещения модуля ngx_cache_purge :

Сохраняем файл, переходим в корень каталога с исходниками Nginx и запускаем команду сборки пакета:

Команда выполнит компиляцию исходников и автоматически соберет deb-пакет nginx_1.9.3-1

jessie_i386.deb . Установим Nginx запустив команду:

Откройте файл и измените настройки виртуального хоста Nginx. Добавьте в секцию server , который будет отвечать за функцию очистки кэша FastCGI:

Чтобы работала функция очистки кэша, вам необходимо заменить KEYS_ZONE_NAME на свое значение параметра keys_zone . Проверяем конфигурацию и применяем настройки Nginx. Для Debian/Ubuntu выполните команды:

Я использую nginx в качестве переднего сервера, я изменил файлы CSS, но nginx все еще обслуживает старые.

Я попытался перезапустить nginx, но безуспешно, и я погуглил, но не нашел действительного способа очистить его.

некоторые статьи говорят, что мы можем просто удалить каталог кэша: var/cache/nginx , но на моем сервере нет такого каталога.

что мне теперь делать?

у меня была точно такая же проблема - я запускал свой nginx в Virtualbox. Я не кэширование. Но выглядит как sendfile был установлен до on на nginx.conf и это было причиной проблемы. @kolbyjack упомянул об этом выше в комментариях.

когда я выключил sendfile - Он работал нормально.

Sendfile используется для "копирования данных между одним файловым дескриптором и другим" и, по-видимому, имеет некоторые реальные проблема при запуске в среде виртуальной машины или, по крайней мере, при запуске через Virtualbox. Выключение этой конфигурации в nginx заставляет статический файл обслуживаться другим методом, и ваши изменения будут отражены немедленно и без вопросов

вы также можете обойти / повторно кэшировать файл по файлу с помощью

и в качестве бонуса вы можете вернуть этот заголовок, чтобы увидеть, получили ли вы его из кэша (вернет "хит") или с сервера содержимого (вернет "обход").

чтобы истечь / обновить кэшированный файл, используйте curl или любой клиент rest, чтобы сделать запрос на кэшированную страницу.

это вернет новую копию элемента, а также заменит то, что находится в кэше.

Если вы не настроили зону кэш через proxy_cache_path и затем использовал его (например, в блоке местоположения), через: proxy_cache ничего не кэшируется.

Если вы сделали, однако, то по словам автора nginx, достаточно просто удалить все файлы из каталога кэша.

самый простой способ: find /path/to/your/cache -type f -delete

вы можете удалить каталог кэша nginx или вы можете искать конкретный файл:

и удалите только один файл, чтобы nginx обновил их.

в этом вопросе есть два ответа.

  • один для nginx как обратный кэш
  • другой для очистки кэша браузера по вводу заголовка (этот)

в моей установке nginx я обнаружил, что мне нужно перейти к:

в этом каталоге. Если вы знаете путь к вашей установке nginx и можете найти каталог кэша, то то же самое может работать для вас. Будь очень осторожны С , Если вы находитесь в том каталоге, вы можете удалить весь жесткий диск.

Я нашел это полезным

поиск, и если найдено, то удалить.

для тех, кто другие решения не работают, проверьте, используете ли Вы службу DNS, например CloudFlare. В этом случае активируйте "режим разработки" или используйте инструмент "очистить кэш".

обратите внимание, что proxy_cache_bypass может дать вам мир боли, Если ваше приложение не возвращает кэшируемый ответ для этого конкретного запроса, где вы его запускаете.

Если, например, ваше приложение отправляет cookie с каждым первым запросом, то скрипт, который запускает proxy_pass_bypass через curl, вероятно, получит этот cookie в ответе, и nginx будет не используйте этот ответ для обновления кэшированного элемента.

Я запускаю очень простой скрипт bash, который занимает все 10 секунд, чтобы сделать работу и отправляет мне письмо, когда закончите.

будьте осторожны, чтобы правильно указать правильный путь.

для тех, кто пытался удалить файлы кэша nginx, и либо он не работал, либо работал с перерывами, посмотрите на настройки open_file_cache. Если это включено и настроено для кэширования дескриптора файла в течение длительного времени, Nginx может по-прежнему видеть версию кэшированного файла, даже после его удаления с диска. Мне пришлось уменьшить open_file_cache_valid до 1s (я не уверен, что это по существу то же самое, что полностью отключить кэш файлов).

У меня тоже была эта проблема.

  • не удалось найти папку nginx / cache
  • sendfile был выключен

вы можете добавить конфигурацию в nginx.conf нравится следующее.

сверху динамично создается папка с именем "nginx_cache" в /tmp/ для хранения кэшированного содержимого.

на моем сервере папка кэша nginx находится в /data/nginx/cache/

поэтому я удалил его только: sudo rm -rf /data/nginx/cache/

надеюсь, это поможет кто-нибудь.

существует один правильный метод удаления только кэш-файлов, который соответствует любому ключу. Например:

это удаляет все кэш-файлы, которые соответствуют ключу " yahoo/*", если в nginx.conf был установлен:

Я испытывал своего рода подобный вопрос:

настройка системы и проблемы: (На virtualbox я веб-хостинг с использованием ubuntu и обновление веб - страницы nginx-PHP не отражает изменения внешнего файла css). Я разрабатываю веб-сайт на машине windows и передаю файлы в nginx через общую папку. Кажется, nginx не подбирает изменения в css-файл (обновление любым способом не помогает. Изменение имени файла css-это только то, что работал)

устранение: На VM найдите общий файл (файл css в моем случае). Откройте с помощью nano и сравните с файлом в Windows share (они выглядят одинаково). На виртуальной машине сохраните общий файл с nano. Все изменения теперь отражены в браузере. Не знаю, почему это работает, но это произошло в моем случае.

UPDATE: после перезагрузки сервера VM проблема вернулась. Следуя инструкциям в разделе решение, css снова реагирует на обновления

у нас есть очень большой кэш nginx (гигабайт), который нам иногда нужно стереть. Я разработал сценарий, который мгновенно очищает кэш (насколько это касается Nginx), а затем удаляет каталог кэша, не голодая основное приложение для ввода-вывода диска

  1. переместить папку кэша в новое место (в той же файловой системе!) (это не нарушает никаких открытых файловых дескрипторов)
  2. воссоздать исходную папку кэша , пусто
  3. Перезагрузить Nginx (изящный Перезагрузка, где nginx позволяет старым рабочим заканчивать незавершенные запросы)
  4. удалить старые кэшированные данные

вот скрипт, адаптированный к Ubuntu 16.04 LTS, с кэшем, расположенным по адресу /mnt/nginx-cache :

и в случае, если это полезно, вот конфигурация Nginx, которую мы используем:

Я использую nginx в качестве фронтального сервера, я изменил файлы CSS, но nginx все еще обслуживает старые.

Я попытался перезапустить nginx, но безуспешно, и у меня есть Google, но я не нашел правильного способа его очистки.

В некоторых статьях говорится, что мы можем просто удалить каталог кэша:, var/cache/nginx но на моем сервере такого каталога нет.

Что мне теперь делать?

Более подробная информация о вашей конфигурации Nginx будет очень полезна. Вы используете proxy_cache ? Нет, я просто использовал конфигурацию по умолчанию и искал строку cache , но не нашел ее в файлах конфигурации Вы работаете в виртуальной коробке / VARGANT VM? Если это так, попробуйте отключить sendfile, так как они не очень хорошо играют вместе. Вы уверены, что кэширование на стороне nginx, тогда? Вы проверили поведение с помощью такого инструмента, как curl? Часто проблема, такая как это просто кэширование на стороне клиента, не запрашивающее обновленный ресурс, потому что было сказано, что старый ресурс будет действителен долгое время, expires max; или что-то подобное.

У меня была точно такая же проблема - я запускал свой nginx в Virtualbox. У меня не было включено кэширование. Но похоже, что sendfile было установлено on в nginx.conf и это вызывало проблему. @kolbyjack упомянул это выше в комментариях.

Когда я выключил sendfile - все работало нормально.

Sendfile используется для «копирования данных между одним файловым дескриптором и другим» и, по-видимому, имеет некоторые реальные проблемы при запуске в среде виртуальной машины или, по крайней мере, при запуске через Virtualbox. Отключение этой конфигурации в nginx приводит к тому, что статический файл обслуживается другим способом, и ваши изменения будут отражены немедленно и без вопросов.

В моем случае альтернативный обходной путь - включить gzip для этих типов файлов. В любом случае проблема решена. Огромное спасибо КолбиДжеку за ответ. Спас мою жизнь. Я использовал следующий «sudo vim /etc/nginx/nginx.conf» и изменил «sendfile on» на «sendfile off»

Вы также можете обойти / повторно кэшировать файл за файлом, используя

и в качестве бонуса вы можете вернуть этот заголовок, чтобы увидеть, получили ли вы его из кэша (вернет «HIT») или с сервера контента (вернет «BYPASS»).

чтобы истечь / обновить кэшированный файл, используйте curl или любой другой клиент для отправки запроса на кэшированную страницу.

это вернет свежую копию элемента, а также заменит то, что находится в кеше.

Почему я могу проголосовать только один раз? Я хочу сделать газиллион :) Это может обновлять кэшированные страницы только тогда, когда новая страница также кэшируется. Если вы удалили страницу (теперь 404 или другие ошибки обслуживаются бэкэндом), страница теперь отправляет Set-Cookie или заголовок «Content-Control: private», кэшированное содержимое не будет «признано недействительным». Это "add_header X-Cache-Status $ upstream_cache_status;" это такая классная особенность! большое спасибо. хороший совет для аннулирования кэша, есть так мало уроков о nginx Изменилось ли это с тех пор, как вы написали? Я могу успешно получить новую копию с «секретным заголовком», но как только я

Если вы не настроили зону кэша через proxy_cache_path, а затем использовали ее (например, в блоке местоположения), через: proxy_cache ничего не будет кэшировано.

Если вы сделали, однако, то, по словам автора nginx , достаточно просто удалить все файлы из каталога кэша.

Самый простой способ: find /path/to/your/cache -type f -delete

да, я автоматически очищаю кеш для своего веб-сайта скриптом всякий раз, когда внедряю изменение, и перезагрузка nginx также не исправляет это. Nop Nginx что-то кеширует, даже если вы не используете прокси, но это ошибка в Nginx + VirtualBox. Это звучит довольно расплывчато. Не могли бы вы уточнить это? Не похоже, что это связано с обсуждаемой здесь темой.

Вы можете удалить каталог кеша nginx или Вы можете искать конкретный файл:

И удалите только один файл, чтобы nginx обновил их.

К сожалению, я получил следующий вывод: grep: /var/nginx/cache/*: No such file or directory я использую Ubuntu 14.04.3 LTS и nginx / 1.8.1. Любая идея? Попробуйте выполнить следующее для grep файлов в / var / nginx / cache: sudo find /var/nginx/cache -type f -exec grep -l '/css/myedited.css' <> \; Я считаю, что это / var / cache / nginx / * (директория кеша перед nginx в пути)

В этом вопросе два ответа.

  • Один для nginx как обратный кеш
  • Другой для очистки кэша браузера путем ввода заголовка (этот)
Я попробовал эту реализацию, потому что у меня похожая проблема. Тем не менее, после того, как я внес изменение - он показывает страницу Nginx по умолчанию. Я использую Niginx в качестве LB с прокси, мне нужно сменить root?

Я нашел это полезным

Ищите, и если нашли, то удалите.

В моей установке nginx я обнаружил, что должен был перейти к:

в этом каталоге. Если вы знаете путь к вашей установке nginx и можете найти каталог кеша, то это может сработать для вас. Будьте очень осторожны с rm -rf командой, если вы находитесь не в том каталоге, вы можете удалить весь жесткий диск.

Я запускаю очень простой скрипт bash, который занимает все 10 секунд, чтобы выполнить работу, и отправляет мне письмо, когда закончите.

У меня тоже была эта проблема.

  • Не удалось найти ни одной папки nginx / cache
  • sendfile был выключен
Это очищает края кэша Cloudflare. Он не очищает кэш Nginx на вашем собственном сервере. Это был отличный ответ. Я копал часы, почему некоторые файлы все еще кэшируются, и не мог догадаться, что это «ошибка» CloudFlare. Спасибо!

У нас есть очень большой кэш nginx (гигабайт), который нам иногда нужно стереть. Я разработал скрипт, который мгновенно очищает кеш (что касается Nginx), а затем удаляет каталог кеша, не останавливая основное приложение для дискового ввода-вывода.

  1. Переместите папку кеша в новое место (в той же файловой системе!) (Это не нарушает дескрипторы открытых файлов)
  2. Воссоздайте исходную папку кеша, пустую
  3. Перезагрузка Nginx ( изящная перезагрузка, где nginx позволяет старым работникам завершать текущие запросы)
  4. Удалить старые кэшированные данные

Вот скрипт, адаптированный для Ubuntu 16.04 LTS, с кешем, расположенным по адресу /mnt/nginx-cache :

И в случае, если это полезно, вот конфиг Nginx, который мы используем:

Для тех, у кого другие решения не работают, проверьте, используете ли вы службу DNS, такую ​​как CloudFlare . В этом случае активируйте «Режим разработки» или воспользуйтесь инструментом «Очистить кэш».

Обратите внимание, что proxy_cache_bypass может навредить вам, если ваше приложение не вернет кэшируемый ответ на тот конкретный запрос, когда вы его инициируете.

Если, например, ваше приложение отправляет куки-файл при каждом первом запросе, то скрипт, который запускает proxy_pass_bypass через curl, вероятно, получит этот куки-файл в ответе, и nginx не будет использовать этот ответ для обновления кэшированного элемента.

Будьте осторожны, чтобы правильно указать правильный путь.

Для тех, кто пытался удалить файлы кеша nginx, и он либо не работал, либо работал с перебоями, взгляните на ваши настройки open_file_cache. Если этот параметр включен и настроен для кэширования дескриптора файла в течение длительного времени, то Nginx может по-прежнему видеть версию кэшированного файла, даже после того, как вы удалили его с диска. Мне пришлось уменьшить open_file_cache_valid до 1 с (я не уверен, что это по сути то же самое, что полное отключение файлового кэша).

На моем сервере папка кеша nginx находится по адресу /data/nginx/cache/

Поэтому я удалил это только: sudo rm -rf /data/nginx/cache/

Надеюсь, это кому-нибудь поможет.

Если вы хотите очистить кеш определенных файлов, вы можете использовать proxy_cache_bypass директиву. Вот как ты это делаешь

Теперь, если вы хотите обойти кеш, вы получите доступ к файлу, передав параметр nocache

Я думаю, что это может быть использовано для атаки и использования полосы пропускания на вашем сайте. Разве это не обходит кеш для текущего запроса ( app.css?nocache=true ), а исходный файл (без запроса) остается в кэше ( app.css )?

Вы можете добавить конфигурацию в nginx.conf следующим образом.

Сверху в / tmp / динамически создается папка с именем «nginx_cache» для хранения кэшированного содержимого.

Есть один правильный способ удалить только кеш-файлы, который соответствует любому KEY. Например:

Это удаляет все кеш-файлы, которые соответствуют KEY "yahoo / *", если в nginx.conf было установлено:

Мы используем nginx для кэширования большого количества вещей. В каталоге кеша находятся десятки тысяч элементов. Чтобы найти элементы и удалить их, мы разработали несколько скриптов, чтобы упростить этот процесс. Вы можете найти репозиторий для этих скриптов ниже:

Идея проста. Создать индекс кэша (с ключами кэша и соответствующими файлами кэша) и выполнить поиск в этом файле индекса. Это действительно помогло нам ускорить поиск элементов (с минут до секунды) и соответственно удалить их.

В моем случае, touch этот файл Css делает его похожим на измененные ресурсы (фактически touch ничего не делает с файлом, кроме изменения времени последнего изменения), поэтому браузер и nginx будут применять последние ресурсы

Я столкнулся с подобной проблемой:

Настройка системы и проблема: (В виртуальной коробке я использую ubuntu и nginx для веб-хостинга - обновления веб-страниц PHP не отражают изменения во внешнем CSS-файле). Я занимаюсь разработкой веб-сайта на машине с Windows и передаю файлы в nginx через общую папку. Кажется, что nginx не воспринимает изменения в css-файле (обновление каким-либо образом не помогает. Изменение имени css-файла - единственное, что сработало)

Решение: На ВМ найдите общий файл (в моем случае файл css). Откройте с помощью nano и сравните с файлом в Windows Share (они выглядят одинаково). На ВМ сохраните общий файл с помощью nano. Все изменения теперь отражены в браузере. Не уверен, почему это работает, но в моем случае.

ОБНОВЛЕНИЕ: после перезагрузки сервера VM проблема вернулась. Следуя инструкциям в разделе Решение, CSS снова стал реагировать на обновления.

Я использую nginx в качестве переднего сервера, я изменил файлы CSS, но nginx по-прежнему обслуживает старые.

Я попытался перезапустить nginx, но безуспешно, и я погуглил, но не нашел действительного способа его очистить.

В некоторых статьях говорится, что мы можем просто удалить каталог кеша: var/cache/nginx , но на моем сервере такого каталога нет.

Что мне теперь делать?

24 ответа

У меня была точно такая же проблема - я запускал свой nginx в Virtualbox. У меня не было включено кеширование. Но похоже, что sendfile был установлен на on в nginx.conf , и это было причиной проблемы. @kolbyjack упомянул об этом выше в комментариях.

Когда выключил sendfile - все заработало.

Sendfile используется для «копирования данных между одним файловым дескриптором и другим» и, по-видимому, имеет некоторые реальные проблемы при запуске в среде виртуальной машины или, по крайней мере, при запуске через Virtualbox. Отключение этой конфигурации в nginx приводит к тому, что статический файл будет обслуживаться другим методом, и ваши изменения будут отражены немедленно и без вопросов.

В моем случае это был включенный opcache в /etc/php/7.2/fpm/php.ini (Ubuntu):

Установка его на 0 заставила сервер загружать последнюю версию файлов (php).

Я запускаю систему Homestead с Hyper-V, и у меня есть проект laravel, работающий на nginx.

У меня не было кеша в моей папке nginx в / etc /

Когда я посещал свой веб-сайт, я получал старые представления сервера и файлы css.

Что решило это для меня после поиска, потраченного впустую, глядя на мою конфигурацию nginx и пробуя вещи, было использование PHP artisan.

Выполните следующую команду в папке, где установлен artisan [корневой каталог проекта laravel]: php artisan optimize: clear

Эта команда очищает все кеши, и когда я обновил свою веб-страницу, она наконец обновилась со всеми изменениями.

Надеюсь, это поможет таким заблудшим душам, как я :)

Что ж, в общих ситуациях проблем с кешем (кеширование браузера, кеширование прокси, кеширование веб-сервера) вы можете использовать общеизвестное решение проблемы с кешем редко изменяющегося содержимого, такого как файлы CSS или JS - путем добавления параметра URI к их ссылкам:

Не <link rel="stylesheet" type="text/css" href="https://example.com/stacks.css">

Но <link rel="stylesheet" type="text/css" href="https://example.com/stacks.css?v=3b16a418cc4c">

Как и StackOverflow. :)

У меня была похожая проблема:

Настройка системы и проблема: (На виртуальном ящике я использую ubuntu и nginx - обновления веб-страницы PHP не отражают изменений во внешнем файле css). Я разрабатываю веб-сайт на машине с Windows и передаю файлы на nginx через общую папку. Кажется, что nginx не принимает изменения в файл css (обновление любым способом не помогает. Единственное, что сработало - это изменение имени файла css)

Решение: На виртуальной машине найдите общий файл (в моем случае файл css). Откройте с помощью nano и сравните с файлом в общей папке Windows (они кажутся идентичными). На виртуальной машине сохраните общий файл с помощью nano. Все изменения теперь отображаются в браузере. Не уверен, почему это работает, но в моем случае так оно и было.

ОБНОВЛЕНИЕ: после перезагрузки сервера ВМ проблема вернулась. Следуя инструкциям в разделе «Решение», CSS снова стал реагировать на обновления.

Мы используем nginx для кеширования большого количества вещей. В каталоге кеша находятся десятки тысяч элементов. Чтобы найти элементы и удалить их, мы разработали несколько сценариев, упрощающих этот процесс. Вы можете найти ссылку на репозиторий кода, содержащий эти скрипты, ниже:

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

В моем случае, touch этот файл Css, чтобы он выглядел так, как будто ресурсы были изменены (на самом деле touch ничего не делает с файлом, кроме изменения времени последнего изменения), поэтому браузер и nginx будут применять последние ресурсы

Вы можете добавить конфигурацию в nginx.conf следующим образом.

Сверху папка с именем «nginx_cache» динамически создается в / tmp / для хранения кэшированного содержимого.

Если вы хотите очистить кеш от определенных файлов, вы можете использовать директиву proxy_cache_bypass . Вот как ты это делаешь

Теперь, если вы хотите обойти кеш, вы обращаетесь к файлу, передавая параметр nocache

Есть один правильный способ удалить только кеш-файлы, соответствующие любому KEY. Например:

Это удаляет все кеш-файлы, соответствующие КЛЮЧУ "yahoo / *", если в nginx.conf был установлен:

Будьте внимательны, чтобы правильно указать правильный путь.

На моем сервере папка кеша nginx находится по адресу /data/nginx/cache/

Я удалил только это: sudo rm -rf /data/nginx/cache/

Надеюсь, это кому-нибудь поможет.

Для тех, кто пытался удалить файлы кеша nginx, но он либо не работал, либо работал с перерывами, обратите внимание на ваши настройки для open_file_cache. Если это включено и настроено для кеширования файлового дескриптора в течение длительного времени, Nginx может по-прежнему видеть версию кэшированного файла даже после того, как вы удалили его с диска. Мне пришлось уменьшить open_file_cache_valid до 1 с (я не уверен, что это по сути то же самое, что полностью отключить кеш файлов).

Обратите внимание, что proxy_cache_bypass может причинить вам серьезную боль, если ваше приложение не возвращает кешируемый ответ для того конкретного запроса, в котором вы его запускаете.

Если, например, ваше приложение отправляет файл cookie с каждым первым запросом, то сценарий, который запускает proxy_pass_bypass через curl, вероятно, получит этот файл cookie в ответ, а nginx не будет использовать этот ответ для обновления кешированного элемента.

Тем, у кого другие решения не работают, проверьте, используете ли вы службу DNS, например CloudFlare. В этом случае активируйте «Режим разработки» или используйте инструмент «Очистить кэш».

У нас очень большой кеш nginx (гигабайты), который нам иногда нужно очистить. Я разработал сценарий, который мгновенно очищает кеш (что касается Nginx), а затем удаляет каталог кеша, не ограничивая основное приложение дисковым вводом-выводом.

  1. Переместите папку кеша в новое место (в той же файловой системе!) (Это не нарушит работу каких-либо открытых файловых дескрипторов)
  2. Восстановите исходную папку кэша, пустую
  3. Перезагрузить Nginx ( изящная перезагрузка, где nginx позволяет старым исполнителям завершать выполняющиеся запросы)
  4. Удалить старые кэшированные данные

Вот сценарий, адаптированный для Ubuntu 16.04 LTS, с кешем, расположенным в /mnt/nginx-cache :

И в случае, если это будет полезно, вот конфигурация Nginx, которую мы используем:

В моей установке nginx я обнаружил, что мне нужно перейти к:

В этом каталоге. Если вы знаете путь к вашей установке nginx и можете найти каталог кеша, то это может сработать для вас. Будьте очень осторожны с командой rm -rf , если вы находитесь в неправильном каталоге, вы можете удалить весь жесткий диск.

У меня тоже была эта проблема.

  • Не удалось найти папку nginx / cache
  • sendfile был отключен

Я нашел это полезным

Ищи, а если найдешь то удаляй.

Я запускаю очень простой сценарий bash, который выполняет задание за 10 секунд и отправляет мне письмо по завершении.

На этот вопрос есть два ответа.

  • Один для nginx в качестве обратного кеша
  • Другой для очистки кеша браузера вводом заголовка (этот)

Вы можете удалить каталог кеша nginx или выполнить поиск в конкретном файле:

И удалите только один файл, чтобы nginx обновил их.

Если вы не настроили зону кеширования через proxy_cache_path , а затем использовали ее (для пример в блоке местоположения), через: proxy_cache ничего не кэшируется.

Однако если вы это сделали, то в соответствии с автор nginx, достаточно просто удалить все файлы из каталога кеша.

Самый простой способ: find /path/to/your/cache -type f -delete

Вы также можете обходить / повторно кешировать файл за файлом, используя

И в качестве бонуса вы можете вернуть этот заголовок, чтобы узнать, получили ли вы его из кеша (вернет «HIT») или с сервера содержимого (вернет «BYPASS»).

Для истечения срока действия / обновления кэшированного файла используйте curl или любой другой клиент для выполнения запроса к кэшированной странице.

Это вернет новую копию элемента, а также заменит то, что находится в кеше.

Читайте также: