Дата последнего изменения: 02.12.2022
Схема работы:
----------------------- --------------------------------------------------- | nginx: 0.0.0.0:80 | -> /bitrix/sub|/bitrix/subws -> | node server.js --config push-server-sub-80XX.json | ----------------------- --------------------------------------------------- ----------------------- --------------------------------------------------- | nginx: 127.0.0.1:8895 | -> /bitrix/pub -> | node server.js --config push-server-pub-90XX.json | ----------------------- ---------------------------------------------------
Nginx проксирует запрос на push-сервис выбранного типа. Запросы получения сообщений (например, sub) - публичные и проксируются со стандартных портов 80/443. Запросы публикации (pub) доступны только с внутреннего адреса сервера.
Nodejs-процессы делятся на два типа:
Для запуска Push-сервера нам понадобятся:
Для установки понадобится Python и утилита make:
zypper install python3 make wget -y
Выполните действия:
wget https://repo.bitrix.info/vm/push-server-0.2.2.tgzили с сайта архив push-server-0.2.2.tgz и разместите его в директории
/opt
. Выполните установку:
su - cd /opt npm install --production ./push-server-0.2.2.tgz
Установка закончится строкой:
+ push-server@0.2.2 added 65 packages from 78 contributors and audited 65 packages in 45.77s
su - ln -sf /opt/node_modules/push-server/logs /var/log/push-server ln -sf /opt/node_modules/push-server/etc/push-server /etc/push-server
su - cd /opt/node_modules/push-server cp etc/init.d/push-server-multi /usr/local/bin/push-server-multi cp etc/sysconfig/push-server-multi /etc/sysconfig/push-server-multi cp etc/push-server/push-server.service /etc/systemd/system/ ln -sf /opt/node_modules/push-server /opt/push-server
echo 'd /tmp/push-server 0770 wwwrun www -' > /etc/tmpfiles.d/push-server.conf systemd-tmpfiles --remove --create
Отредактируйте конфигурационный файл /etc/sysconfig/push-server-multi
. В нём нужно исправить/добавить параметры:
cat /dev/urandom |tr -dc A-Za-z0-9 | head -c 128
Пример настроек параметров:
GROUP=www USER=wwwrun SECURITY_KEY="SECURITYKEY123456" RUN_DIR=/tmp/push-server REDIS_SOCK=/var/run/redis/default.sock
/usr/local/bin/push-server-multi configs pub /usr/local/bin/push-server-multi configs sub
Сгенерированные конфигурации в формате
json
push-server-sub-80XX.json
push-server-pub-90XX.json
будут размещены в каталоге: /etc/push-server/
.
/etc/systemd/system/push-server.service
:
[Service] User=wwwrun Group=www ExecStart=/usr/local/bin/push-server-multi systemd_start ExecStop=/usr/local/bin/push-server-multi stop ...
chown wwwrun:www /opt/node_modules/push-server/logs /tmp/push-server -RH
systemctl daemon-reload
systemctl --now enable push-server
/etc/sysconfig/push-server-multi
.