Назад | Перейти на главную страницу

Возникли проблемы с удалением HTTP-заголовка «Cache-control»

Я пытаюсь кэшировать свои активы с помощью Cloudflare
Cloudflare заявляет здесь который «CloudFlare не будет кэшировать ваш сайт или статический контент, если с вашего сервера исходят частные заголовки без кеширования»

Как видно из ответа в моем файле, Cache-control: no-cache="set-cookie" проходит:
https://redbot.org/?uri=http%3A%2F%2Fdev.shareasimage.com%2Fstatic%2Fapp%2Fimages%2Fads%2Fts.ad.png

Я пробовал удалить его с помощью Header unset Cache-control, но не повезло

Кто-нибудь сталкивался с этим раньше?

Вы используете mod_session?

В этом есть ошибка:

https://bz.apache.org/bugzilla/show_bug.cgi?id=61161

Я не упомянул, что мои серверы находятся за балансировщиком нагрузки на AWS.
AWS ELB (то, что они называют своими балансировщиками нагрузки) имеет вызов настройки stickiness
Когда вы включаете его, они устанавливают cookie, чтобы посетители постоянно отправлялись на один и тот же сервер.

У этого есть дополнительный побочный эффект добавления следующего заголовка после того, как ваш сервер выполнит запрос:
Кэш-контроль: no-cache = "set-cookie"

Мне нужно было отключить липкость, чтобы этот заголовок не устанавливался

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

Я предполагаю, что вы столкнулись с ошибкой, потому что у вас есть две разные заглавные буквы Cache-Control:

Cache-Control: max-age=259200, no-cache="set-cookie"
Cache-control: no-cache="set-cookie"

Заголовки HTTP нечувствительны к регистру, но вы, вероятно, столкнулись с необычным крайним случаем, когда Apache перестает искать, когда находит совпадение с тем, что вы пытаетесь удалить - поэтому первый, Cache-Control, удаляется, а Cache-Control нет.

Либо найдите место в своей конфигурации, либо закодируйте Cache-control устанавливается заголовок, и пусть он полностью заглавными буквами станет нормальным Cache-Control (затем Header unset Cache-Control должен уничтожить оба значения) или заставить Apache дважды искать совпадающее имя без учета регистра, что должно сработать:

Header unset Cache-Control
Header unset Cache-control