Мы покажем вам, как исправить ошибку «serve static content from a cookieless domain». При использовании инструмента анализатора веб-сайтов, такого как PageSpeed Insights, GTMetrix, Pingdom или Uptrends, часто появляется предупреждение, в котором говорится: «serve static content from a cookieless domain», это означает, что ваш веб-сервер настраивает файлы cookie — это заставляет все будущие HTTP-запросы включать этот файл cookie, создавая нежелательный сетевой трафик. Это, в свою очередь, замедляет скорость вашего сайта, когда пользователь пытается получить к нему доступ. Если вам нужно, чтобы ваш сайт был как можно быстрее, переход в домен без cookie — это решение. Домен не принимает cookies из браузеров, что снижает общий сетевой трафик. Цель состоит в том, чтобы обслуживать весь статический контент — например, изображения, javascript, CSS и т. д. — через статические, куки домена, который помогает повысить скорость загрузки этих ресурсов.
В этой статье мы рассмотрим, как настроить куки домена, чтобы разрешить это предупреждающее сообщение. Существует два способа создания файла cookieless: используйте новый домен для обслуживания статического контента или используйте поддомен для обслуживания статического содержимого. Использование субдомена — самый популярный выбор, поскольку для него не требуется покупка нового доменного имени — это тот метод, который мы рассмотрим сегодня. Тем не менее, использование нового домена вместо поддомена может быть сделано для работы достаточно легко с этой статьей. В этом руководстве обсуждается, как настроить cookieless-домен на сервере на базе Linux.
Создание субдомена может быть выполнено с использованием нескольких методов. Если у вас есть панель управления, такая как cPanel или DirectAdmin, есть встроенные утилиты для создания поддоменов легко и быстро. Используйте страницу создания встроенного субдомена для создания субдомена с именем «статический». По завершении вашего субдомена должно выглядеть так:
static.yourdomain.ru
После этого попробуйте получить доступ к новому субдомену, введя полный URL-адрес в веб-браузере. Вам следует приветствовать полностью белую страницу.
Если у вас нет панели управления для создания вашего поддомена, это не проблема — просто следуйте этим следующим двум шагам. Чтобы создать субдомен без панели управления, вам нужно будет отредактировать файл конфигурации вашего веб-сайта. Расположение файла конфигурации, который вам нужно отредактировать или создать, зависит от того, какой пакет программного обеспечения веб-сервера вы используете. В этом учебнике мы рассмотрим как NGINX, так и Apache. Однако сначала вам нужно создать новую папку, которая будет содержать все файлы сайта в новом субдомене. / var / www / — хорошее место для создания новой папки — назовите ее «static.yourdomain.ru».
Чтобы создать субдомен с помощью Apache, нам нужно добавить несколько дополнительных строк в существующую конфигурацию веб-сайта. Расположение файла конфигурации зависит от того, какой дистрибутив Linux вы используете. Вот путь к файлу для систем на базе RedHat:
/etc/httpd/conf.d/static.yourdomain.conf
и для систем на базе Debian:
/etc/httpd/sites-available/static.yourdomain.conf
Откройте файл конфигурации своего веб-сайта, используя предпочтительный текстовый редактор, и добавьте следующий абзац в конец файла:
<VirtualHost *:80> ServerName static.yourdomain.ru DocumentRoot /var/www/static.yourdomain.ru ErrorLog /your/error/log/path CustomLog /your/requested/log/path combined </VirtualHost>
Замените «yourdomain» своим доменным именем и укажите пути к их соответствующим каталогам в системе. Когда это будет сделано, вы можете перезапустить Apache следующей командой:
service httpd restart
С NGINX нам нужно создать полный файл конфигурации для этого нового поддомена. Итак, создайте и откройте новый файл в /etc/nginx/sites — доступный с помощью вашего предпочтительного текстового редактора и откройте файл static.yourdomain.ru.conf. Затем добавьте следующее в свой новый файл. (Не забудьте изменить «yourdomain» на ваше доменное имя):
server { listen 80; server_name static.yourdomain.ru; log_not_found off; error_log off; fastcgi_hide_header Set-Cookie; root /var/www/static.yourdomain.ru; location / { if ($request_filename ~ "\.(css|js|jpg|jpeg|gif|ico|png|bmp|pict|csv|doc|pdf|pls|ppt|tif|tiff|eps|ejs|swf|midi|mid|ttf|eot|woff|otf|svg|svgz|webp|docx|xlsx|xls|pptx|ps|class|jar|woff2|less|scss)$") { add_header Pragma "public"; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; add_header Access-Control-Allow-Origin *; access_log off; expires 1M; break; } return 302 http://www.yourdomain.ru$request_uri; } }
Сохраните этот файл и выйдите из текстового редактора. Следующий шаг — создать символическую ссылку (символическую ссылку), чтобы включить эту конфигурацию в NGINX. Вы можете сделать это со следующей строкой:
ln -s /etc/sites-available/static.yourdomain.ru.conf /etc/sites-enabled/static.yourdomain.ru.conf
Теперь перезапустите NGINX, чтобы изменения вступили в силу:
service nginx restart
Теперь, когда поддомен был успешно настроен, теперь нам нужно настроить наши записи DNS, чтобы использовать этот поддомен в качестве псевдонима. Мы сделаем это, используя запись CNAME. Используя клиентские инструменты, которые предоставляет ваш хостинг-провайдер, вы можете легко создать запись CNAME, которая указывает ваш поддомен в ваш основной домен. Или, если у вас нет панели управления для вашего сервера, вы можете вручную изменить свои файлы зон. Вам нужно добавить строку в файл зоны, который создает псевдоним в ваш основной домен. Вот как это должно выглядеть:
static.yourdomain.ru. IN CNAME yourdomain.ru.
Теперь вам нужно добавить дополнительную строку в ваш файл .htaccess, найденный в корне вашего файла cookieless. Итак, используя ваш предпочтительный текстовый редактор, откройте файл .htaccess в папке, где находится ваш текущий веб-сайт, и добавьте эту строку в конец:
CookieDomain www.yourdomain.ru
Здесь префикс «www» важен. Без него статический субдомен не может функционировать.
Теперь, когда основная настройка зделана, вам нужно изменить ссылки на своем сайте, чтобы указать на новый статический субдомен. Именно с этого момента он получит свои ресурсы. Например, вы изменили бы это:
<link rel="stylesheet" type="text/css" href="/css/main.css">
на следующее:
<link rel="stylesheet" type="text/css" href="http://static.yourdomain.com/css/main.css">
Теперь, когда вы пытаетесь получить доступ к своему сайту, он загружает статический контент из поддомена вместо основного домена. Это дает дополнительное преимущество одновременной загрузки контента сайта, когда пользователь обращается к вашему сайту.