Java (Tomcat): как настроить неиременный поддомен для обслуживания статического контента
-
04-10-2019 - |
Вопрос
Один из наконечников, данного как Google, так и Yahoo! Чтобы ускорить нагрузку на веб-страницы состоит в том, чтобы настроить нечетный поддомен для сервера статического контента.
Как вы настраиваете «неэбиальный поддомен», используя TOMCAT в автономном режиме (этот вопрос не о том, как использовать Apache, чтобы служить статическому контенту в некровенном виде, но о том, как сделать это в режиме Tomcat-Standalone)?
Обратите внимание, что мне не волнует фильтры, поддерживающие If-Modified-Since
Ни уход за фильтрами, поддерживающими GZIpping: статический контент, который я обслуживаю, - это навсегда кешируемое (или его имя изменится), и он уже сжатые данные (поэтому GZIP только замедляет перенос).
Мне нужны два разных Tomcat WebApps? (Один «Cookiefull» и один «незабываемый»)
Нужны ли мне два разных сервлетах? (На данный момент у меня есть только один диспетчер / контроллер сервлета).
Почему «регулярная» ссылка на, скажем, статическое изображение будет вызываться в кулинарном способе, когда он будет в том же домене, что и главный WebApp, а затем будет вызываться в «Bookie-менее», когда он находится в поддомене ?
Я точно не понимаю, что происходит: это браузер, который решает добавить или нет файлов cookie к запросу? Если это так, то почему это не добавило бы печенье в статический запрос на «незабываемое» поддомен.
Любой пример относительно того, что происходит за сценой, больше всего приветствуется :)
Решение
Вам просто нужно настроить другой домен. Это может указывать на одни и те же WebApps. Просто убедитесь, что вы не бросаете печенье на этот новый домен.
Например, вы главный сайт
www.example.com
и вы можете иметь другой домен
static.example.com
Для ваших статических ресурсов меньшее количество файлов cookie. Они могут указывать на одни и те же хозяины, перейдите к одному и тому же сервлету. Вам просто нужно убедиться в вашем приложении, которое вы не бросаете файлы cookie для этих статических содержимых.
Редактировать: Предполагая, что ваш статический контент обслуживается сервлетом по умолчанию в Tomcat, вам не нужно ничего делать. Это не бросает файлы cookie для вас, чтобы ваш новый домен должен быть бесплатным файлом cookie.
Если вы должны обработать статический контент в том же сервлете, вы можете сделать что-то вроде этого,
if (!request.getServerName().equals("static.example.com")) {
// Drop cookie
}
Этот пример предполагает, что вы не бросаете cookie в вашем корневом домене (.example.com). Если вы это сделаете, вы должны получить еще один домен, как Examplecdn.com.
Другие советы
Я разместил об этом здесь: URL / поддомен переписывает (htaccess)
Думаю, у вас может быть его задом наперед, (или очень, возможно, я делаю), чтобы уточнить, если ваша реализация Bookie-mone Subdomain и имеет базовый URL WWW. По крайней мере, в этом случае файлы cookies установлены на www, например: крупный сеттер cookie - Google Analytics, поэтому при настройке их сценария на моем сайте это выглядит так:
`var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'analytics-acc-#],
['_setDomainName', '[
www.valpoleative.com2'],
['_trackPageview']);
`
Здесь вы можете увидеть, что я настроил свой основной домен на www, поправьте меня, если я ошибаюсь в моем случае, мне нужно будет перенаправить www для не www поддоменов, а не наоборот. Это также настройка CNAME, сделанная на My CPanel (CNAME = «CDN», указывая на www.domain.com)