Повышение производительности за счет использования дополнительного статического файлового сервера

Я планирую создать большой веб-сайт, который будет содержать много статических ресурсов (js, css, изображения и эскизы) на сгенерированных страницах. Этот сайт будет использовать TYPO3 как CMS (это требование клиента).

Я думаю, я мог бы серьезно улучшить производительность / время загрузки страницы, используя установку с двумя серверами. Один сервер, на котором работает основное приложение (PHP), а другой - статические файлы, обслуживаемые урезанной версией apache или чем-то вроде lighthttpd.

Включение, например, файлов js или css с файлового сервера, конечно, не составляет большого труда. Просто используйте абсолютный URL http://static.example.com/js/main.js и покончим с этим.

Но: на этом сайте будут страницы с МНОГИМИ миниатюрами, например, изображениями продуктов. Итак, я вижу две проблемы, когда основное приложение пытается создать эскиз некоторого изображения:

  1. оригинальное изображение как products/some.jpg загружается на статический файловый сервер и, следовательно, не на тот же сервер, что и приложение PHP, которое пытается создать миниатюру.

  2. TYPO3 записывает созданные эскизы во временный каталог, который, как ожидается, будет находиться на том же сервере. Поэтому сотни миниатюр будут записываться и обслуживаться из этого временного каталога, который находится на том же сервере, что и основное приложение -> статический файловый сервер в этом случае в основном бесполезен, все миниатюры будут запрашиваться с сервера основного приложения.

Итак, мой вопрос: как преодолеть эти недостатки?

Можно ли "символическую ссылку" некоторых каталогов на другой сервер?

Так, например, если PHP пытается открыть исходное изображение продукта для создания эскиза с imagecreate("products/some.jpg") папка products на самом деле "указывает" на папку products на сервере статических изображений? Я знаю, что-то подобное можно сделать с .htaccess но возможно ли это на уровне файловой системы?

3 ответа

Решение

Лак кеш отлично подходит для этого!

http://www.mocsystems.com/typo3temp/pics/1bd7cb81a0.png

Вы можете найти это искусство интересным.

Я бы сказал, что первое, что нужно сделать, это просто начать с mod_expires чтобы уменьшить статические запросы файлов, то, возможно, добавить mod_deflate снизить пропускную способность.

Только когда вы действительно увидите серьезную нагрузку, начните разделение на отдельные серверы.

Перемещение статических запросов к другому серверу на одном и том же apache (возможно, с использованием того же корня документа) должно быть хорошим первым шагом при разбиении.

Похоже, никто не ответил на настоящий вопрос.

Наличие разных обработчиков запросов к статическим файлам существенно отличается от обработки всех запросов одним и тем же кэширующим прокси.

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

Я также заинтересован в решении, чтобы легко сделать это в TYPO3. Мне не понадобится статический сервер на отдельной машине. Так что доступ к файловой системе для меня не проблема.

Другие вопросы по тегам