Дата последнего изменения: 09.06.2025
Предположим, что в качестве внешнего прокси выступает nginx сервер.
При желании можно данные настройки адаптировать и для других прокси-сервисов.
Вне зависимости от того, как организована у вас работа балансера — единственная точка входа или он обслуживает только запросы клиентов из внешних сетей, а BitrixVM запросы внутренней сети — на него нужно перенести настройки Push-server.
Переносим настройки проксирования запросов push на балансер — можно взять конфигурационный файл виртуальной машины /etc/nginx/bx/conf/im_subscrider.conf за основу (можно прям его скопировать на балансер):
location ~* ^/bitrix/subws/ {
access_log off;
proxy_pass http://nodejs_sub;
# 12h+0.5
proxy_max_temp_file_size 0;
proxy_read_timeout 43800;
proxy_http_version 1.1;
proxy_set_header Upgrade $replace_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location ~* ^/bitrix/sub/ {
access_log off;
rewrite ^/bitrix/sub/(.*)$ /bitrix/subws/$1 break;
proxy_pass http://nodejs_sub;
proxy_max_temp_file_size 0;
proxy_read_timeout 43800;
}
location ~* ^/bitrix/rest/ {
access_log off;
proxy_pass http://nodejs_pub;
proxy_max_temp_file_size 0;
proxy_read_timeout 43800;
}
Данный файл подключаем к серверу, на котором настроено проксирование запросов на виртуальную машину.
Верхний конфигурационный файл зависит от /etc/nginx/bx/settings/rtc-im_settings.conf, в котором определяются следующие параметры:
Upgrade и Connection через переменные:
# if connection ti not set
map $http_upgrade $connection_upgrade {
default upgrade;
'' 'close';
}
map $http_upgrade $replace_upgrade {
default $http_upgrade;
'' "websocket";
}
upstream nodejs_sub {
ip_hash;
keepalive 1024;
server push:8010;
server push:8011;
server push:8012;
server push:8013;
server push:8014;
server push:8015;
}
upstream nodejs_pub {
ip_hash;
keepalive 1024;
server push:9010;
server push:9011;
}
Данный файл /etc/nginx/bx/settings/rtc-im_settings.conf тоже можно скопировать и подключить на уровне http-секции на балансере.
Далее на push-server необходимо открыть порты 8010-8015 и 9010-9011 для доступа с балансера.
firewalld:
firewall-cmd --permanent --add-port=8010-8015/tcp firewall-cmd --permanent --add-port=9010-9011/tcp firewall-cmd --reload
Предположим, мы проксируем http и https сайта test.example.org на 80 порт виртуальной машины BitrixVM.
Включим модуль real_ip в BitrixVM — создаем конфигурационный файл bx/settings/real_ip.conf:
set_real_ip_from BALANCER_IP; real_ip_header X-Forwarded-For;
В качестве real_ip_header нужно указать заголовок балансера, который он передает на бэкенд (виртуальную машину BitrixVM). В set_real_ip_from — IP-адрес балансера.
Перезапускаем nginx.
systemctl restart nginx.service
Далее настраиваем передачу протокола, по которому клиент работает с сервером.
Нам нужно, чтобы балансер передавал на бэкенд-сервер информацию о протоколе:
proxy_set_header X-Forwarded-Proto $scheme;
На бэкенде (виртуальная машина BitrixVM) делаем конфигурацию для настройки переменных в файле /etc/nginx/bx/settings/schema.conf:
map $http_x_forwarded_proto $balancer_port {
default 80;
"https" 443;
}
map $http_x_forwarded_proto $balancer_https {
default "NO";
"https" "YES";
}
Тогда на бэкенде переменная $http_x_forwarded_proto будет содержать значение http или https в зависимости от протокола подключения.
Далее нам потребуется конфигурационный файл сайта:
сайт по умолчанию — /etc/nginx/bx/site_enabled/s1.confВ конфигурационном файле сайта нас интересует часть:
proxy_set_header Host $host:80;
Меняем указанную выше часть на:
proxy_set_header Host $host:$balancer_port; proxy_set_header HTTPS $balancer_https;
Перезапускаем nginx:
systemctl restart nginx.service
Все готово.
Для настройки проксирования телефонии можно использовать правило:
location ~* ^/(pub/imconnector/|pub/imbot.php|services/telephony/info_receiver.php|bitrix/tools/voximplant/) {
proxy_ignore_client_abort on;
proxy_pass $proxyserver;
}
О других настройках локальной сети при использовании телефонии рассказывается в соответствующем уроке курса Администратор сервиса Битрикс24.