Поднимаем “Сервер взаимодействия 1С” на Debian 10/11/12
За основу взята чистая система Debian 10, дистрибутив сервера взаимодействия 24.0.28 и рекомендованные версии java и PostgreSQL.
УСТАНОВКА БАЗОВАЯ, НАСТРОЙКУ УЖЕ ТРЕБУЕТСЯ ДЕЛАТЬ ПО ВАШЕЙ СИТУАЦИИ!
Этап 1. Установка основного сервера, Java и PostgreSQL
Сначала поставим все зависимости:
Добавим репозиторий java и установим его:
Добавляем переменную JAVA_HOME глобально для всех юзеров:
Добавим репозиторий для PostgreSQL и установим его:
Сразу произведем первичную настройку ии создание базы данных:
Качаем дистрибутив сервера с сайта ИТС или грузим в консоль с моего сервера командой ниже (ссылка на ИТС клик)
Начинаем установку компонентов
Производим настройку подключения к базе данных (пароль пишем свой):
Указываем порт и хост, я буду работать на localhost, так как потом направлю подключение через NGINX:
Запускаем системы:
Проверяем работу командой:
Если все ок, ответ будет такой:
Если что не так, то логи тут:
Инициируем базу данных (пароль пишите свой):
О том что все хорошо, скажет ответ типа:
Если надо в фаерволе открываем порт:
На этом этапе мы можем уже подключить 1С к серверу. Но у нас не будут прикрепляться файлы, однако сами сообщения уже будут работать.
Этап 2: установка и подключение хранилища, для работы с файлами:
Замечаение!
Я буду использовать MinIO S3, однако можно подключить любое совместимое хранилище. Официально сервер работает с системами:
- Amazon
- Amazon CDN
- Google Cloud
- Google Cloud CDN
- Croc Cloud
- Техносерв
Как подключать облачное хранилище, смотрите в документации на ИТС.
Выдержка из доки
В данном примере будет использоваться хранилище Amazon
- В браузере открыть ссылку https://console.aws.amazon.com/s3
- Войти или создать аккаунт.
- Нажать кнопку Create bucket.
- Задать имя хранилища, например 1c-cs-bucket-2.
- Перейти по ссылке https://console.aws.amazon.com/iam/home
- В верхнем правом углу нажать на логин и в выпадающем меню выбрать My Security Credentials.
- Раскрыть пункт: Access keys (access key ID and secret access key).
- Нажать Create New Access Key.
- Нажать Show Access Key.
- Скопировать себе Access Key ID и Secret Access Key. Эти данные понадобятся в запросе на добавление хранилища в базу данных.
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
- Откройте хранилище в браузере (или перейдите по ссылке https://console.aws.amazon.com/s3/buckets/<имя_хранилища>/?region=eu-west-1)
- Permissions / CORS Configuration
- Настройка с максимальным уровнем доступа:
*
GET
POST
DELETE
* - На сервере взаимодействия выполните команду:
$ curl -Sf -X POST -H 'Content-Type: application/json' -d '{ "type": "AMAZON", "baseUrl": "https://s3.amazonaws.com", "containerUrl": "https://${container_name}.s3.${region}.amazonaws.com", "containerName": "Имя хранилища", "region": "eu-west-1", "accessKeyId": "Access Key ID", "secretKey": "Secret Access Key", "signatureVersion": "V4", "uploadLimit": 1073741824, "downloadLimit": 1073741824, "fileSizeLimit": 104857600, "bytesToKeep": 104857600, "daysToKeep": 31, "pathStyleAccessEnabled": false }' -u admin:admin http://localhost:8087/admin/storage_server
Начинаем установку хранилища:
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливались при старте, занесем их инициализацию в /etc/default.
Создаем службу:
Запускаем:
http://IP-адрес-сервера-хранилища:9000
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
Для хранилища укажите, что оно работает в режиме "Read and Write".
На сервере взаимодействия выполните команду, только внимательно подправьте под свою конфигурацию:
Если не цепляется, можно попробовать подключить напрямую через базу
На этом этапе мы получили полностью работающую систему взаимодействия, где работают звонки, сообщения и вложения.
Тонкую настройку уже сами разбираемся как делать. Как разгрузить звонки комп при звонках, тоже можно посмотреть на ИТС. (гуглить как медиасервера для проведения видеоконференций, применяют в качестве него WebRTC Server «Janus».
Далее, я уже занимаюсь баловством и то что я буду делать, дает мне возможность спрятать за одним портом весь сервер с его хранилищем, чтоб база подключалась только по WSS (веб-сокет с шифрованием) и работала как с базами опубликованными по HTTPS, так и с простыми базами, при этом работающая даже там, где блокируются все порты кроме 80 и 443.
Немного упростим работу с ring, чтоб не писать постоянно весь путь
Этап 3. Баловство, ради опыта:
Как упомянул в начале, я хочу в данной системе задействовать NGINX. Я прекрасно понимаю что обеспечить работу по WSS можно и без него, но я не хочу конвертировать сертификат в формат для java и я не хочу открывать более одного порта. Хочу просто домен третьего уровня, который будет работать как надо)
Приступим и начнем с установки NGINX и CertBot (да, да. Я хочу бесплатные сертификаты с автоматическим обновлением):
Создаем конфиг нашего "сайта" для того чтоб хранилище было по пути /storage, а в корне наш сервер взаимодейтвия
Переходим к правке сервера, рабочим хост в файле nano /var/cs/cs_instance/config/websocket.yml и указываем localhost. На этом этапе если перезапустить сервер взаимодействия 1С уже можно подключить по WSS, но за пределами сети не будут работать файлы.
Далее надо подцепиться к скулю (я буду юзать туннель и HeidiSQL) и там отредактировать подключение к хранилищу.
Правим в нашей базе данных таблицу public.storage_server, указываем адрес к серверу с полным путем и меняем версию с 2 на 4.
Профит)
Вот у нас и получился сервер взаимодействия с WSS и работающий на одном хостнейме без дополнительных портов.
No Comments