Apache, PHP кэширование
A настроил внутренний прокси-сервер, используя Curl и PHP. Настройка выглядит следующим образом:
Прокси-сервер является довольно дешевым VPS (который имеет медленный дисковый ввод/вывод в разы). Все запросы к этому серверу обрабатываются одним индексом.PHP-скрипт. Индекс.php получает данные с другого, быстрого сервера и отображает их пользователю.
Передача данных между двумя серверами происходит очень быстро, и узким местом является только дисковый ввод-вывод на прокси-сервере. Так как есть только один индекс.PHP - я хотите знать
1) Как я могу гарантировать этот индекс.php постоянно "cahced" в Apache на прокси-сервере? (Гугля для кэша php, я нашел много пользовательских решений, которые будут кэшировать" данные", выводимые php я хочу знать, есть ли какие-либо модули предварительной сборки в apache, которые будут кэшировать сам php-скрипт?).
2) Всегда ли данные, полученные с бэкенд-сервера, хранятся в оперативной памяти / кэше прокси-сервера? (при условии, что памяти достаточно)
3) читает ли apache какие-либо конфигурационные файлы или другие файлы с диска при обработке запросов?
4) ожидает ли apache записи журналов на диск перед подачей содержимого-если да, то я отключу ведение журнала на прокси-сервере (или есть способ гарантировать, что содержимое сначала подается, не дожидаясь записи журналов).?
В принципе, я хочу исключить дисковый ввод-вывод все вместе на "прокси-сервере".
Спасибо,
JP
3 ответов:
1) установить APC (http://pecl.php.net/apc ), это скомпилирует ваш PHP-скрипт один раз и сохранит его в общей памяти на время жизни процесса веб-сервера (или заданного TTL).
2) Если ваш скрипт извлекает данные и не кэширует/хранит их в файловой системе, он будет находиться в оперативной памяти, да. Но только на время выполнения запроса. PHP использует стратегию "share-nothing", которая означает, что вся память освобождается после запроса. Если вы кэшируете данные в файловой системе, рассмотрите возможность использования memcached (http://memcached.org/) вместо того, чтобы обойти файловый ввод-вывод.
3) Если есть .активирована поддержка htaccess, Apache будет искать их в каждом пути, ведущем к вашему файлу php. Смотрите Почему я не могу отключить .htaccess в Apache? для получения дополнительной информации.
4) не уверен на 100%, но, вероятно, он ждет.
Почему бы не использовать что-то вроде лака, который явно построен для этого типа задач и не несет накладных расходов Apache?
Comments