277  /  330

Оптимизация количества запросов к серверу

Просмотров: 1354 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 02.07.2015

Если проект находится на отдельном сервере, то необходимо использовать настройку путей в модуле Push & Pull, позволяющая современным браузерам ходить напрямую на сервер очередей.

До появления этой опции в версии 15.5.1 приходилось делать проксирование запросов. (Запрос отправлялся на сервер сайта, так как старые браузеры не поддерживают прямые запросы AJAX на другие домены, и уже оттуда запрос перенаправлялся на сервер очередей через внутренние правила). Это создавало нагрузку и лишний трафик.

Теперь все новые браузеры обращаются напрямую на сервера. Но из-за особенности работы нашей реализации JS с сервером, им приходится делать дополнительно на каждое подключение OPTIONS запрос. Чтобы избавится от него, необходимо изменить конфигурационные файлы сервера.

Откройте файл bx/conf/im_subscrider.conf, в описании локейшена location ^~ /bitrix/sub { проверьте есть ли у вас такое условие:

if ($arg_time) {
    push_stream_last_received_message_time "$arg_time";
}

Если нет, то добавьте. Выглядеть это должно примерно так:

push_stream_subscriber            long-polling;
 push_stream_allowed_origins "*";
 push_stream_channels_path        $arg_CHANNEL_ID;
 push_stream_last_received_message_tag    $arg_tag;
 if ($arg_time) {
    push_stream_last_received_message_time "$arg_time";
 }

После этого воспользуйтесь методом COption::SetOptionString:

COption::SetOptionString("pull", "nginx_headers", "N");

После этого, при подключении, все пользователи будут генерировать к серверу на один запрос меньше (это произойдет не сразу, а по мере обновления JS кода у клиента, перезапуска страницы).


5
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии