Nginx проксирует запрос на Push-сервис выбранного типа. Запросы получения сообщений sub — публичные, проксируются со стандартных портов 80/443. Запросы публикации pub — доступны только с внутреннего адреса сервера.
Nodejs-процессы делятся на два типа:
Процессы, отвечающие за подключение пользователя к выбранному каналу и получение им сообщений. Слушают порты 8010-8015.
Процессы, отвечающие за отправку сообщения в канал. Слушают порты 9010-9011.
Для запуска Push-сервера необходимы:
nodejs & npm;
архив сервиса и его модулей.
Выполните следующие действия:
Скачайте и установите архив push-server-0.4.0.tgz:
su -
cd /opt
wget https://repo.bitrix.info/vm/push-server-0.4.0.tgz
npm install --omit=dev ./push-server-0.4.0.tgz
Если репозиторий repo.bitrix.info недоступен, скачайте архив push-server-0.4.0.tgz и разместите его в директории /opt. Далее выполните установку:
su -
cd /opt
npm install --omit=dev ./push-server-0.4.0.tgz
Установка закончится строкой:
added 1 package in 15s
16 packages are looking for funding
run `npm fund` for details
Для удобства дальнейшей работы выполните команды:
su -
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
В конфигурационном файле /etc/sysconfig/push-server-multi исправьте (или добавьте, если их нет) следующие параметры:
SECURITY_KEY — секретный ключ для подписи соединения между клиентом и Push-сервером,
Длина ключа не имеет значения. В ключе можно использовать только буквы латинского алфавита и цифры, спецсимволы запрещены. Рекомендуем использовать длинный ключ — простой и короткий небезопасен. Вы можете сгенерировать его в консоли с помощью команды:
cat /dev/urandom |tr -dc A-Za-z0-9 | head -c 128
RUN_DIR — директория для хранения PID файлов процесса,
USER/GROUP — пользователь, под которым будет запущен сервис.