Ответ
Перенос статики на отдельный домен (например, static.example.com) дает несколько преимуществ:
-
Параллельные запросы – браузеры ограничивают количество одновременных соединений к одному домену (обычно 6-8). Разделение доменов позволяет обойти это ограничение.
-
Отсутствие кук – для статики не нужны куки, а при отдельном домене они не будут передаваться, экономя трафик.
-
Кеширование – статика реже меняется, и отдельный домен позволяет настроить долгий срок кеширования (Cache-Control: max-age=31536000).
-
CDN – статику проще раздавать через CDN, что ускоряет загрузку для пользователей в разных регионах.
Пример настройки в Nginx:
server {
listen 80;
server_name static.example.com;
location / {
root /var/www/static;
expires 1y;
add_header Cache-Control "public";
}
} Ответ 18+ 🔞
А, слушай, вот это тема! Отдельный домен для статики — это ж как взять всю эту хуйню вроде картинок, скриптов и стилей и выселить на отдельную жилплощадь, типа static.example.com. И знаешь, зачем это всё? Не просто же так, блядь, архитекторы интернета голову ломали.
Во-первых, браузер — он жадная сволочь, но по правилам. К одному домену он одновременно может держать, ну, скажем, штук шесть-восемь подключений. А если у тебя сайт — ёперный театр с двадцатью картинками, пятью скриптами и десятью стилями? Он их будет качать очередью, как в советской столовой. А ты возьми и раскидай запросы на два домена — основной и статический. Браузер сразу начнёт жрать с двух кормушек параллельно, и всё полетит в разы быстрее. Хуй с горы, а не оптимизация!
Во-вторых, куки. Эти крохоборные пидоры, которые ползут на основной домен с каждым запросом. А зачем они картинке? Она ж не авторизуется, блядь! На отдельном домене для статики куки просто не будут отправляться. Трафик сэкономишь, да и серверу легче.
В-третьих, кеширование. Статика-то меняется редко. Ну поменял ты логотип раз в пятилетку. Так дай браузеру команду: «Храни это год, не дергайся!». А на основном домене, где контент живой, так не сделаешь. А тут — пожалуйста. Настроил и забыл.
Ну и в-четвёртых, CDN. Это когда твои картинки размножаются по всему миру, и пользователь из Владивостока качает их не с твоего сервака в Питере, а с ближайшего зеркала. С отдельным доменом подключить CDN — раз плюнуть.
Короче, вся фишка в том, чтобы основной сервер (example.com) пахал только с динамикой, а всякая мутотень лежала на другом (static.example.com). И жить станет веселее.
Вот, смотри, как это примерно в Nginx'е выглядит. Блок кода не трогаю, он и так красавец.
server {
listen 80;
server_name static.example.com;
location / {
root /var/www/static;
expires 1y;
add_header Cache-Control "public";
}
}
Видишь? Создаёшь серверный блок, который слушает static.example.com. Всё, что туда приходит, он ищет в папке /var/www/static. И сразу же говорит браузеру: «Э, сабака, сука! Этот файл тебе на год, запомни!». Заголовок Cache-Control: public — это чтобы прокси-сервера тоже могли это кешировать. В общем, красота, а не конфиг.