Apache, PHP кеширование - PullRequest
5 голосов
/ 15 ноября 2010

A настроили внутренний прокси-сервер, используя Curl и PHP.Настройка выглядит следующим образом:

Прокси-сервер - это довольно дешевый VPS (который иногда имеет медленный дисковый ввод / вывод).Все запросы к этому серверу обрабатываются одним скриптом index.php.Index.php извлекает данные с другого быстрого сервера и отображает их пользователю.

Передача данных между двумя серверами очень быстрая, и узким местом является только дисковый ввод-вывод на прокси-сервере.Поскольку существует только один index.php - я хочу знать

1) Как я могу убедиться, что index.php постоянно «спекается» в Apache на прокси-сервере?(Погуглив для кеша php, я нашел много пользовательских решений, которые будут кешировать вывод «data» по php. Я хочу знать, есть ли в apache модули предварительной сборки, которые будут кешировать сам php-скрипт?).

2) Данные всегда извлекаются с внутреннего сервера в ОЗУ / кэш на прокси-сервере?(при условии, что памяти достаточно)

3) При обращении с запросами apache считывает какие-либо файлы конфигурации или другие файлы с диска?

4) Ожидает ли apache записи журналов на диск перед обслуживаниемсодержимое - если это так, я отключу ведение журнала на прокси-сервере (или есть ли способ обеспечить подачу содержимого в первую очередь, не дожидаясь записи журналов).?

По сути, я хочу исключить дисковый ввод-выводвсе вместе на прокси-сервере.

Спасибо,

JP

Ответы [ 3 ]

6 голосов
/ 15 ноября 2010

1) Установите APC (http://pecl.php.net/apc),), это скомпилирует ваш PHP-сценарий один раз и сохранит его в общей памяти на время существования процесса веб-сервера (или заданного TTL).

2) Если ваш скрипт извлекает данные и не кэширует / не сохраняет их в файловой системе, он будет в ОЗУ, да. Но только на время запроса. PHP использует стратегию «без разделения ресурсов», которая означает, что -all- память освобождается после запроса. Если вы делаете кеширование данных в файловой системе, рассмотрите возможность использования memcached (http://memcached.org/) вместо того, чтобы обойти файловый ввод / вывод.

3) Если у вас активирована поддержка .htaccess, Apache будет искать их в каждом пути, ведущем к вашему php-файлу. См. Почему я не могу отключить .htaccess в Apache? для получения дополнительной информации.

4) Не уверен на 100%, но это, вероятно, действительно ждет.

3 голосов
/ 15 ноября 2010

Почему бы не использовать что-то вроде Varnish , явно созданное для этого типа задач и не несущее издержек Apache?

0 голосов
/ 15 ноября 2010

Я бы порекомендовал "tinyproxy" для этой куколки.Делает все, что вы хотите, очень аккуратно.

...