Плюсы и минусы отдельного сервера изображений (например,images.mydomain.com )?
-
06-09-2019 - |
Вопрос
У нас есть несколько изображений и PDF-документов, которые доступны через наш веб-сайт.Эти изображения и документы хранятся в системе управления версиями и являются скопированным содержимым при развертывании.Мы рассматриваем возможность создания отдельного сервера изображений для размещения на нем наших стандартных изображений и документов PDF, что значительно сократит объем нашего пакета развертывания.
Есть ли у кого-нибудь опыт работы с таким подходом?
Мне интересно о каких-либо "подводных камнях", таких как проблемы с XSS и / или браузером, доставляющим контент из альтернативного поддомена?
Решение
Профессиональный:
Многие браузеры выделяют только два сокета для загрузки ресурсов с одного хоста.Таким образом, если index.html загружается с www.domain.com и ссылается на 6 файлов изображений, 3 файла javascript и 3 файла CSS (все на www.domain.com), браузер будет загружать их по 2 за раз, а другой блокируется до тех пор, пока сокет не освободится.
Если вы перенесете 6 файлов изображений на отдельный хост, скажем images.domain.com, вы получите дополнительные два сокета, выделенных для загрузки ваших изображений.Это распараллеливает процесс загрузки ресурсов, так что теоретически ваша страница может отображаться в два раза быстрее.
Con:
Если вы используете SSL, вам потребуется либо получить дополнительный SSL-сертификат для одного хоста для images.domain.com, либо подстановочный SSL-сертификат для *.domain.com (соответствует любому поддомену).В противном случае в браузере будет выдано предупреждение о том, что страница содержит смешанный безопасный контент.
Другие советы
Вы также, используя другой домен, не будете отправлять данные cookie с каждым запросом.Это может повысить производительность.
Еще одна вещь, о которой еще не упоминалось, - это то, что вы можете использовать разные веб-серверы для обслуживания разных видов контента.Например, ваш статический контент может обслуживаться через lighttpd или nginx, в то же время продолжая обслуживать ваш динамический контент через Apache.
Плюсы:
-балансировка нагрузки
-выделение другой функциональности
Минусы:
-больше работы (когда вы создаете страницу на главном сайте, вам придется поддерживать ресурсы на отдельном сервере)
Такие вещи, как XSS, - это проблема кода, не очищающего ввод (или вывод, если уж на то пошло).Единственная проблема, которая может возникнуть, - это если у вас есть файлы cookie, специфичные для поддомена, которые используются для аутентификации..но это действительно тривиальное решение.
Если вы обслуживаете HTTPS и отправляете изображение из домена HTTP, то при его использовании вы получите всплывающие предупреждения о безопасности браузера.
Так что, если вы используете HTTPS, вам нужно будет купить HTTPS для вашего домена изображений, если вы не хотите чертовски раздражать своих пользователей :)
Есть и другие способы обойти это, но это не входит в рамки данного ответа - это было просто предупреждение!