В чем профит переноса статики сайта на отдельный домен

Ответ

Перенос статики на отдельный домен (например, static.example.com) дает несколько преимуществ:

  1. Параллельные запросы – браузеры ограничивают количество одновременных соединений к одному домену (обычно 6-8). Разделение доменов позволяет обойти это ограничение.

  2. Отсутствие кук – для статики не нужны куки, а при отдельном домене они не будут передаваться, экономя трафик.

  3. Кеширование – статика реже меняется, и отдельный домен позволяет настроить долгий срок кеширования (Cache-Control: max-age=31536000).

  4. 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 — это чтобы прокси-сервера тоже могли это кешировать. В общем, красота, а не конфиг.