Я планирую создать большой веб-сайт, который будет включать много статических ресурсов (js, css, изображения и эскизы) на сгенерированных страницах. Этот сайт будет использовать TYPO3
как CMS (это требование заказчика).
Думаю, я мог бы серьезно улучшить производительность / время загрузки страницы, используя установку из двух серверов. Один сервер, на котором работает основное приложение (PHP), и другой, на котором находятся статические файлы, обслуживаются урезанной версией apache или чем-то вроде lighthttpd.
Включая e. грамм. js или css с файлового сервера, конечно же, не представляет большого труда. Просто используйте абсолютный URL http://static.example.com/js/main.js
и покончить с этим.
Но: на этом веб-сайте будут страницы с МНОГИМИ эскизами e. грамм. изображения продукта на нем. Итак, я вижу две проблемы, когда основное приложение пытается создать эскиз какого-нибудь изображения:
исходное изображение как products/some.jpg
загружается на статический файловый сервер и, следовательно, не на тот же сервер, что и приложение PHP, которое пытается создать эскиз.
TYPO3 записывает созданные эскизы во временный каталог, который, как ожидается, находится на том же сервере. Таким образом, сотни эскизов будут записываться и обслуживаться из этого временного каталога, который находится на том же сервере, что и основное приложение -> статический файловый сервер в этом случае практически бесполезен, все эскизы будут запрашиваться с сервера основного приложения.
Итак, у меня вопрос: как преодолеть этот недостаток?
Можно ли "связать" одни каталоги с другими? сервер?
Так, например, если PHP пытается открыть исходное изображение продукта для создания эскиза с помощью imagecreate("products/some.jpg")
папка продуктов на самом деле «указывает» на папку продуктов на сервере статических изображений? Я знаю, что подобное можно сделать с .htaccess
но возможно ли это на уровне файловой системы?
Лаковый кеш отлично подходит для этого!
(источник: mocsystems.com)
Вы можете найти это статья интересный.
Я бы сказал, что первое, что нужно сделать, это просто начать с mod_expires
чтобы уменьшить количество статических файловых запросов, возможно, добавьте mod_deflate
для снижения пропускной способности.
Только однажды ты на самом деле видеть серьезная нагрузка, затем начните разделение на отдельные серверы.
Перенос статических запросов на другой vserver на том же apache (возможно, с использованием того же корня документа) должен быть хорошим первым шагом при разделении.
Похоже, никто не ответил на актуальный вопрос.
Наличие другого сервера для обработки запросов к статическим файлам значительно отличается от обработки всех запросов одним и тем же прокси-сервером кэширования.
Наличие отдельного сервера для статических файлов позволяет клиентам обрабатывать больше загрузок параллельно.
Меня также интересует решение, позволяющее легко сделать это в TYPO3. Однако мне не нужен статический сервер на отдельной машине. Так что доступ к файловой системе для меня не проблема.