nginx proxy_cache или Memcached
В настоящее время я использую proxy_cache nginx для файлового кэширования перед тремя приложениями Django (Apache/mod_wsgi). Для некоторых местоположений /URL я отключил proxy_cache и вместо этого использовал Memcached (для каждого просмотра) в приложении Django. Теперь мне интересно, является ли указание nginx на Memcached более эффективным.
Я читал здесь, что nginx может обслуживать страницы из Memcached - но записывает ли Django полные страницы в Memcached при настройке для кэширования для каждого просмотра (и устанавливает ли он срок действия в соответствии с параметром @cache_page)?
1 ответ
Использование различных приложений для записи и чтения из кэша всегда затруднительно, даже если существуют строго предписанные форматы данных / протоколы. В этом случае, хотя nginx и django могут обращаться к memcached, маловероятно, что они будут использовать одинаковые форматы данных / индексации.
Кэширование обратного прокси-сервера очень отличается от кэширования исходного сервера. На самом деле нет никакого смысла делать какое-либо кэширование вывода на уровне приложения (хотя здесь часто рекомендуется делать кэширование данных). Весь контент, который будет отсылаться по HTTP, должен кэшироваться nginx и только nginx. Какой субстрат он использует для этого - другой вопрос.