Назад | Перейти на главную страницу

Файловая система Drupal

Чтобы попытаться улучшить время загрузки, я думаю о создании определенного поддомена для папки с файлами на сайте Drupal. Дальнейшим улучшением может быть, например, наличие этого конкретного поддомена в облаке ...

Я не очень разбираюсь в серверах, и мне еще многое предстоит узнать о HTTP-запросах, но основное предположение заключается в том, что страница будет загружаться быстрее, если ресурсы разделены между серверами.

Например, если моя домашняя страница отображает image.jpg, следующее должно загружаться быстрее

       http://example.com
       http://files.example.com/image.jpg 

чем это

       http://example.com
       http://example.com/image.jpg 

Поскольку я разрабатываю с помощью Drupal, я знаю, что могу изменить путь к своим файлам в конфигурации сайта. Я еще не пробовал ввести абсолютный URL-адрес в поле «Путь к файловой системе», но я не считаю это решение гибким, потому что это означало бы наличие того же пути на моем локальном сайте разработки.

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

Я не уверен, что это достаточно ясно, поэтому не стесняйтесь оставлять комментарии, если вам нужны дополнительные разъяснения.

Преимущество, которое вам нужно, заключается в увеличении браузером количества одновременных подключений. Для этого контент должен обслуживаться из разных (под) доменов. Другими словами, необходимо изменить URI на вашей веб-странице, указывающие на статические файлы.

Браузер не заботится о том, где находятся файлы на вашем сервере, а только о (под) домене, на который они ссылаются. Обычно это влечет за собой использование модуля Drupal, который переписывает ссылки при создании страницы. (т.е. необходимо изменить фактические ссылки на вашей веб-странице, а не что-то за кулисами - символические ссылки, перенаправления и обратные прокси здесь не помогут.) Вы можете изучить CDN модуль для примера подобной реализации.

Когда у вас есть правильные URL-адреса на вашей веб-странице, вам нужно будет обслуживать контент из этих (под) доменов. Поскольку вы специально упомянули об использовании субдомена, типичная процедура повлечет за собой добавление записи DNS (CNAME) для вашего домена, указывающей на субдомен; настройка VirtualHost на вашем веб-сервере (например, Apache, Nginx, Lighttpd и т. д.) с именем сервера, соответствующим вашему поддомену; и указав корень документа на ваши статические файлы. Здесь может иметь значение изменение пути к файлу - пусть Drupal загрузит файлы в корень документа вашего поддомена (при условии, что права собственности на файл и разрешения такие же, как у вашего основного сайта) - или вы можете использовать свою идею символической ссылки - но ваш веб-сервер должен быть настроен для следования символическим ссылкам.

Стоит упомянуть, что за обслуживание контента из поддомена взимается «плата». Требуется дополнительный поиск в DNS. Иногда эта стоимость перевешивает выгоду от параллелизма, особенно если вы обслуживаете только несколько статических файлов. Наилучшая «воспринимаемая» производительность может быть достигнута за счет минимизации количества запросов, необходимых для рендеринга всего на своем месте, и ограничения сценариев блокировки. Помимо других факторов, обслуживайте эти исходные ресурсы из того же (под) домена, что и ваш основной сайт, и обслуживайте другой контент (например, изображения) из вашего «статического» поддомена.