Проблема с кэшированием PageSpeed - PullRequest
0 голосов
/ 28 августа 2018

Наше веб-приложение, разработанное в php (Yii Framework), использует сервер Nginx и PageSpeed ​​для целей кэширования. Из-за этого кэширования иногда не загружается некоторый контент и изображения.

На бэкэнде есть кнопка для очистки кэша сервера. Поэтому мы должны вручную очищать кеш при возникновении некоторых проблем. После очистки кеша все работает нормально.

Есть ли способ автоматизировать очистку кэша?
Иногда мы не получаем обновленные данные и после очистки кеша данные видны. В этом случае я могу предположить, что некоторые запросы к БД были кэшированы?

Что если я отключу эту страницу кеша скорости? Это сильно повлияет на производительность веб-приложения?

Действительно застрял в этом. Пожалуйста, помогите.

Вот код очистки кэша, вызываемый, когда мы очищаем кэш, нажимая кнопку очистки кэша.

$output = shell_exec("touch /var/ngx_pagespeed_cache/cache.flush");
$a = shell_exec("echo $?");

1 Ответ

0 голосов
/ 28 августа 2018

Для запуска запланированных команд оболочки используйте команду Linux crontab .

$ crontab -e

Чем отредактировать файл для запуска ваших команд следующим образом:

1 2 3 4 5 /path/to/command arg1 arg2

Где:

  1. Минута (0-59)
  2. Часы (0-23)
  3. день (0-31)
  4. Месяц (0-12 [12 == Декабрь])
  5. День недели (0-7 [7 или 0 == воскресенье])

/path/to/command - имя сценария или команды для планирования

Но этот вопрос не должен решаться таким образом. Ваша проблема в том, что вы неверно управляете версиями своих файлов. Модуль PageSpeed ​​не должен сбрасываться таким образом. Вам необходимо понять, как работают механизмы кэширования, и использовать Yii CLI для создания нового пути для ваших активов в рамках процесса развертывания

...