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

Использование доменов с подстановочными знаками для обслуживания изображений без блокировки http

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

Одно предостережение: мне нужно обслуживать файлы по HTTPS.

Любые мнения о том, возможно ли это:

  1. Настройте подстановочный сертификат для * .domain.com.
  2. Всякий раз, когда мне нужно изображение, сгенерируйте число на основе хеш-мода 5 имени файла и добавьте его в поддомен img (например, img1.domain.com, img4.domain.com, img3.domain.com и т. Д. ); хэш заставит любое имя файла всегда использовать один и тот же поддомен, и поэтому браузер должен иметь возможность кэшировать изображения
  3. Настройте динамическую запись виртуального хоста, чтобы указать все img #. поддомены в / var / www / img

Я ищу отзывы об этом плане. Меня беспокоит:

  1. Буду ли я получать предупреждения, если на моей странице есть https: // ссылки на несколько поддоменов?
  2. Возможна ли вообще динамическая запись виртуального хоста, о которой я говорю?
  3. Учитывая объем обработки, который для этого потребуется, принесет ли это хоть какую-то общую пользу? Я, вероятно, усредняю ​​полдюжины изображений на страницу, и только половина изменяется при каждом обновлении страницы.

Заранее благодарим за отзыв.

Ваша схема возможна, если у вас есть запись DNS с подстановочными знаками, указывающая на ваш веб-сервер, и она настроена для ответа на всех возможных хостах, и у вас есть сертификат SSL с подстановочными знаками. Однако я вижу несколько проблем:

  1. Помещая каждое изображение на другое имя хоста, вы увеличиваете количество DNS-запросов, необходимых для загрузки страницы.
  2. Помещая их на разные имена хостов, вы лишаете браузер возможности повторно использовать существующее TCP-соединение для нескольких изображений. Установление TCP-соединений «дорого», и теперь потребуется установить соединение для КАЖДОГО образа, а не для нескольких, которые были бы установлены и повторно использованы, если бы образы находились под одним и тем же именем хоста.

Как правило, некоторые хорошие практики для служебных образов включают:

  1. Загружайте изображения с хоста, отличного от имени основного домена, но ограничьте их одним или двумя другими именами хоста (по причинам, указанным выше).
  2. Убедитесь, что для этих имен хостов не используются файлы cookie (избавляет браузер от необходимости отправлять файлы cookie вместе с запросом.
  3. Убедитесь, что кэширование включено для контента, обслуживаемого на этих именах хостов (хотя обычно не применяется для SSL).
  4. По возможности комбинируйте изображения и используйте спрайты CSS.
  5. Многие другие, которые были в порядке задокументированный в другом месте.
  1. Нет, если все SSL и действительный сертификат, у вас не будет проблем.
  2. Да, по крайней мере, в apache это так же тривиально, как установка одной строки ServerAlias *.domain.com
  3. Не совсем в нынешнем состоянии.

Более подходящее решение:

Используйте облегченный сервер (например, lighttpd с другим доменом без загруженных тяжелых модулей (облегченные процессы) и используйте только один сервер на каждый сервер с соответствующими настройками. Или, что еще лучше, используйте nginx в качестве сервера, поскольку это будет:

  1. Не требовать другого домена / порта / сертификата.
  2. nginx обслуживает статический контент и действует как обратный прокси-сервер для «динамических» запросов к вашему исходному, более тяжелому серверу, который работает либо локально на другом порту / IP, возможно, на другом сервере, по вашему выбору
  3. установите соответствующие настройки в nginx (например, keepalive, worker и т. д.)
  4. нет проблем с обслуживанием HTTPS