Принуждение Apache 2.4 к файлам кэша со строкой запроса с помощью mod_cache без истекает

Я должен заставить mod_cache_disk кэшировать сайт, содержащий строки запроса. Проблема - то, что это - продукт поставщика на IIS, который мы пытаемся кэшировать через mod_proxy, и это не содержит, истекает заголовки. Я понимаю, что эта проблема нарушает несколько RFCs, и вот почему апач не делает этого по умолчанию.

Существует ли способ вынудить апача 2.4.x кэшироваться со строкой запроса и не истекает заголовок?

Эта конфигурация будет кэшироваться, но конечно без удостаивания? это кэширует неправильное содержание для большинства объектов.

CacheEnable disk https://
CacheEnable disk /
CacheRoot /var/cache/mod_proxy/
CacheDirLevels 4
CacheDirLength 5
CacheIgnoreCacheControl On
CacheIgnoreNoLastMod On
CacheIgnoreHeaders None
CacheMaxFileSize 100000000
CacheMinFileSize 1
CacheMaxExpire 1209600
CacheDefaultExpire 3600
CacheIgnoreQueryString On
CacheStoreNoStore On
CacheStorePrivate On

Если я изменюсь, то CacheIgnoreQueryString к От него начнет испускать ошибки о, истекает заголовок.

AH00768: кэш:/view.image? Id=1114, не кэшируемый. Причина: существующая Строка запроса, но никакое явное время истечения срока,

1
задан 26 March 2014 в 22:42
3 ответа

Согласно этот ответ единственный способ сделать это - позволить Apache видеть нужные ему заголовки (Expires, как вы указали, и, по-видимому, также Last-Modified) .

Автор этого ответа предлагал написать фильтр на стороне приложения, но, поскольку ваш продукт является продуктом поставщика, это может быть невозможно. Есть возможность добавить прямо в IIS? В противном случае вам может повезти с настройкой двойного прокси: используйте один прокси для добавления заголовков (но не кеширования) и прокси , который от Apache (беря заголовки и кеширование).

1
ответ дан 4 December 2019 в 00:27

тоа е моето решение

<IfModule mod_cache.c>
    CacheIgnoreNoLastMod On
    CacheIgnoreHeaders Set-Cookie
    <IfModule mod_disk_cache.c>
        CacheRoot D:\\apache_cache
        CacheEnable disk /
        CacheDirLevels 1
        CacheDirLength 1
    </IfModule>
</IfModule>

и од задната страна додадете заглавие

Cache-Control:s-maxage=1200

s-максимум - за мемории за прокси и ЦДН

0
ответ дан 4 December 2019 в 00:27

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

А самым очевидным модулем для этого был бы mod_rewrite.

Но что не сработает , так как mod_cache начал целенаправленно использовать неизмененную версию строки запроса в 2006.

.
0
ответ дан 4 December 2019 в 00:27

Теги

Похожие вопросы