Назад |
Перейти на главную страницу
Использование доменов с подстановочными знаками для обслуживания изображений без блокировки http
Я читал, что браузеры иногда блокируют ожидание нескольких изображений с одного и того же хоста, и я пытаюсь сделать все возможное, чтобы ускорить загрузку страницы.
Одно предостережение: мне нужно обслуживать файлы по HTTPS.
Любые мнения о том, возможно ли это:
- Настройте подстановочный сертификат для * .domain.com.
- Всякий раз, когда мне нужно изображение, сгенерируйте число на основе хеш-мода 5 имени файла и добавьте его в поддомен img (например, img1.domain.com, img4.domain.com, img3.domain.com и т. Д. ); хэш заставит любое имя файла всегда использовать один и тот же поддомен, и поэтому браузер должен иметь возможность кэшировать изображения
- Настройте динамическую запись виртуального хоста, чтобы указать все img #. поддомены в / var / www / img
Я ищу отзывы об этом плане. Меня беспокоит:
- Буду ли я получать предупреждения, если на моей странице есть https: // ссылки на несколько поддоменов?
- Возможна ли вообще динамическая запись виртуального хоста, о которой я говорю?
- Учитывая объем обработки, который для этого потребуется, принесет ли это хоть какую-то общую пользу? Я, вероятно, усредняю полдюжины изображений на страницу, и только половина изменяется при каждом обновлении страницы.
Заранее благодарим за отзыв.
Ваша схема возможна, если у вас есть запись DNS с подстановочными знаками, указывающая на ваш веб-сервер, и она настроена для ответа на всех возможных хостах, и у вас есть сертификат SSL с подстановочными знаками. Однако я вижу несколько проблем:
- Помещая каждое изображение на другое имя хоста, вы увеличиваете количество DNS-запросов, необходимых для загрузки страницы.
- Помещая их на разные имена хостов, вы лишаете браузер возможности повторно использовать существующее TCP-соединение для нескольких изображений. Установление TCP-соединений «дорого», и теперь потребуется установить соединение для КАЖДОГО образа, а не для нескольких, которые были бы установлены и повторно использованы, если бы образы находились под одним и тем же именем хоста.
Как правило, некоторые хорошие практики для служебных образов включают:
- Загружайте изображения с хоста, отличного от имени основного домена, но ограничьте их одним или двумя другими именами хоста (по причинам, указанным выше).
- Убедитесь, что для этих имен хостов не используются файлы cookie (избавляет браузер от необходимости отправлять файлы cookie вместе с запросом.
- Убедитесь, что кэширование включено для контента, обслуживаемого на этих именах хостов (хотя обычно не применяется для SSL).
- По возможности комбинируйте изображения и используйте спрайты CSS.
- Многие другие, которые были в порядке задокументированный в другом месте.
- Нет, если все SSL и действительный сертификат, у вас не будет проблем.
- Да, по крайней мере, в apache это так же тривиально, как установка одной строки
ServerAlias *.domain.com
- Не совсем в нынешнем состоянии.
Более подходящее решение:
Используйте облегченный сервер (например, lighttpd с другим доменом без загруженных тяжелых модулей (облегченные процессы) и используйте только один сервер на каждый сервер с соответствующими настройками. Или, что еще лучше, используйте nginx в качестве сервера, поскольку это будет:
- Не требовать другого домена / порта / сертификата.
- nginx обслуживает статический контент и действует как обратный прокси-сервер для «динамических» запросов к вашему исходному, более тяжелому серверу, который работает либо локально на другом порту / IP, возможно, на другом сервере, по вашему выбору
- установите соответствующие настройки в nginx (например, keepalive, worker и т. д.)
- нет проблем с обслуживанием HTTPS