Питання кешування кальмарів


0

Я хотів би створити роботу з cron, яка видалить наш кеш кальмарів і перезапустить його. Причина, через яку я це роблю, полягає в тому, що коли я завантажую новий код javascript на наш веб-сервер, коли я переглядаю наш додаток у браузері, вказуючи на наш кальмар, я все одно отримую старий код, навіть якщо я очистив кеш браузера.

Він починає працювати після того, як я очищую кеш нашого кальмара і перезапускаю його.

Мені справді потрібна робота, щоб виконати це, чи мені просто не вистачає конфігурації в нашому кальмарі? Звичайно, ми все ще хочемо кешування, але не тоді, коли буде завантажено нову збірку веб-додатків.


З першого пошуку Google: wiki.squid-cache.org/SquidFaq/…
Марк Ріддел

Що? Схоже, ви не зрозуміли мою посаду.
devwannabe

Ви хочете очистити та перезапустити кеш. Посилання, яке я надіслав, стосується розділу "Я хочу перезапустити Кальмар з порожнім кешем". Сценарій, що в крон. Або я неправильно зрозумів ваше прохання?
Марк Рідделл

Так, ти це неправильно зрозумів. Я згадав про те, що відбувалося. Я запитав, чи може бути конфігурація, яку мені потрібно додати в squid.conf, щоб ця проблема кешування пройшла.
devwannabe

Відповіді:


1

Перевірте свій squid.conf, щоб переконатись у відсутності рядків refresh_pattern, які б казали Squid виконувати інструкції кешування HTTP та нехтувати ними. Це повинно бути все, що вам потрібно зробити. Кальмар буде виконувати перевірку ревалідизації (REFRESH / IMS) за замовчуванням, коли це потрібно, решта - за початковим сервером.

Переконайтесь, що ваш сервер виробляє Last-Modified та, якщо можливо, заголовки ETag для кожної відповіді. Кальмари старше 3.5.21 потребують того, щоб повторно затвердити.

Якщо ваші зміни проходять через відомі регулярні інтервали Cache-Control: max-age = N та Expires заголовки, повинні повідомляти, що повідомляє Squid, коли відбудеться наступна зміна. В іншому випадку, якщо час непередбачуваний Cache-Control: слід видавати заголовок без кешу.

Вам також потрібно переконатися, що ваш сервер продукує 304 відповіді належним чином, коли вміст не змінився. Якщо цього немає, то перегляньте документацію на ваші сервери, як це виправити.


Це я зробив кілька днів тому. У кінцеву точку nginx я додав заголовки no-cache, max-age 0 тощо. До мене ще ніхто не прийшов і запитав "ей, чи можете ви, будь ласка, очистіть кеш" :)
devwannabe

max-age = 0, ймовірно, стає занадто малим, що по суті означає, що зовсім не кешувати його. N - це кількість секунд, тому ви можете встановити його на кілька десятків або сотень і отримати розумне кешування, а також чуйність щодо оновлень. він також переосмислює кеш-пам'ять - так вибрати найкраще.
Амос Джефріс

1

Потрібно перевірити, чи Squid налаштований належним чином, щоб перевірити вгору потоки кожного запиту кешу, та встановити HTTP- If-Modified-Sinceзаголовок на кожен запит.

Якщо сервер висхідного потоку надсилає відповідь 304 Not Modified, тоді Squid може надіслати існуючу версію кешу. Якщо сервер вище за течією відповідає з новою версією, то Squid може оновити кеш і надіслати нову версію файлу.


О, це здорово. Я спробую, коли завтра завантажую нову збірку. Яку частину в конфігурації кальмарів я повинен перевірити? Крім того, куди я можу це помістити?
devwannabe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.