https://google.gik-team.com/?q=ngx_http_gzip_static_module
https://habr.com/ru/post/99256/
Прежде, чем что-то утверждать, нужно проверить самому, не? Я вот проверил, почему-то всё считается.
У меня отлично работает такая схема:
1) Отключить вебвизор.
2) Весь код метрики запихиваем в setTimeout с не очень большим временем, например, 300 мс. Точный таймаут подбирается опытным путем с помощью webpagetest.
3) Добавить в шапку <link href="https://cdn.jsdelivr.net" rel="dns-prefetch">.
4) Если не устраивает загрузка по таймауту, то watch.js храним у себя на сервере, грузим с того же хоста, что и всё остальное. Никакие cdn'ы и шардирования ненужны, когда сейчас есть HTTP/2. JS обновляем раз в сутки по крону:
Код скрипта обновления примерно такой:
<?php$c = file_get_contents('https://cdn.jsdelivr.net/npm/yandex-metrica-watch/watch.js');$tmp_fn = __DIR__ . '/tmp/yandex-metrica' . time() . '.tmp';$tmp_gz_fn = $tmp_fn . '.gz';$js_fn = __DIR__ . '/js/yandex-metrica/watch.js';$js_gz_fn = $js_fn . '.gz';file_put_contents($tmp_fn, $c);if(file_exists($tmp_fn)){ if(filesize($tmp_fn) > 50000){ exec('gzip -k9 ' . $tmp_fn); if(file_exists($tmp_gz_fn)){ unlink($js_fn); unlink($js_gz_fn); rename($tmp_fn, $js_fn); rename($tmp_gz_fn, $js_gz_fn); } else die("Can't gzip the file " . $tmp_fn . "!"); } else die("The downloaded file " . $tmp_fn . " is truncated (" . filesize($tmp_fn) . "bytes)!");} else die("Can't download the file!");
Предполагается, что в php.ini включена функция exec, и у вас VPS/дедик с Debian/Ubuntu.
Угу, с 5 Тб/мес. трафика теперь. Для файлопомоек хостинг в РФ найти скоро станет невыполнимой задачей.
Действительно, чем я должен быть недоволен? Было в среднем 16 тыс. кликов в будни, стало 13 тыс. Счастье-то какое!
Любой + реверс-прокси (тоже любой). Снаружи можно ещё прикрыть CF. Если вырубят прокси - берётся новая в другом ДЦ.
Лучше всего взять кучу серверов в разных странах и сравнить, у кого лучше каналы, да и надёжнее так. Бэкэнд прикрыть реверс-проксей. 🚬
Вот с этого и нужно начинать. У российских хостеров гарантированные 200Мбит стоят астрономических денег. Арендовал у этого IpServer дедик, тоже обещали "200Mbps guaranteed", а по факту - максимум 112 МБит/с. Поэтому перед покупкой обязательно нужно тестировать скорость, если отсутствует их сервер на спидтесте / looking glass - таких хостеров лучше избегать.
Могу порекомендовать: 1) Contabo 2) Worldstream.nl 3) Bacloud. Для регионов за Уралом подойдёт Selectel (хотя и не так выгодно как вышеперечисленные).
По хттп - нормально.
По хттпс - сильно увеличивается RTT, но это не только из РФ.