Установка и запуск нескольких экземпляров сервера 1С:Предприятие на одном компьютере. Платформа Linux

  • Автор:

multiple-1C-servers-linux-000.pngЗапуск нескольких экземпляров сервера на одном компьютере является штатной возможностью сервера 1С:Предприятие и позволяет использовать несколько платформ одновременно или разделить сервера на рабочие и тестовые. Важным обстоятельством является то, что все запущенные экземпляры используют единственную серверную лицензию, что позволяет серьезно экономить денежные средства при наличии вычислительных возможностей. Процесс установки дополнительных экземпляров сервера 1С:Предприятие на платформе Linux в целом несложен, однако официальная документация скупа и обрывочна, поэтому исправим данный пробел.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Принцип работы нескольких экземпляров сервера 1С:Предприятие на одном компьютере прост - нам нужно разнести рабочие порты каждого экземпляра. Таким образом мы можем запустить неограниченное количество серверов 1С:Предприятие, ограничением станут только вычислительные ресурсы.

В своей работе сервер 1С:Предприятие использует следующие порты:

  • TCP 1540 - агент сервера
  • TCP 1541 - менеджеру кластера
  • TCP 1560-1591 - рабочие процессы

Когда мы указываем подключение к кластеру серверов 1С:Предприятие, то программа обращается к менеджеру кластера и это единственный порт, который нужно будет явно указать при изменении рабочих портов. В мире 1С укоренилась практика для каждого нового экземпляра менять первую цифру для набора портов, т.е. для второго экземпляра используем 2540, 2541, 2560-2591 и т.д., хотя никто не мешает указать вам произвольные значения.

Все экземпляры, по умолчанию, работают от пользователя usr1cv8, который является членом группы grp1cv8, но некоторых случаях вам может потребоваться запустить платформу от иного пользователя и ниже мы расскажем, как это сделать, но это действие не обязательное, и вы можете его пропустить.

Все команды ниже, если не указано иного, выполняются от имени суперпользователя или через sudo.

Создание нового пользователя для экземпляра сервера 1С:Предприятие (опционально)

Для создания нового пользователя для пользователя вашего экземпляра севера 1С:Предприятие следует прежде всего выбрать его имя, правилом хорошего тона будет образовывать его от стандартного с отсылкой к используемому диапазону портов, например, usr1cv8-2х, для этого используем команду:

useradd -g grp1cv8 -G grp1cv8 -m -c "1C Enterprise 8 server 2x launcher" -r usr1cv8-2x

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

Установка дополнительного экземпляра сервера 1С:Предприятие

Для установки дополнительного экземпляра сервера мы будем использовать единый дистрибутив, будем считать, что он распакован в текущей директории, более подробно о работе с единым дистрибутивом можно прочитать в нашей статье:

Единый дистрибутив 1С:Предприятие для Linux. Установка сервера

Для установки экземпляра воспользуйтесь командой:

./setup-full-8.3.22.2283-x86_64.run --mode unattended --enable-components server

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

После установки платформы зарегистрируем шаблон юнита systemd и перечитаем их список:

systemctl link /opt/1cv8/x86_64/8.3.22.2283/srv1cv8-8.3.22.2283@.service
systemctl daemon-reload

Теперь внесем необходимые изменения в наш экземпляр юнита, для этого воспользуемся штатной для systemd возможностью drop-in, обратите внимание, что после знака @ мы указали имя нашего экземпляра юнита - 2x:

systemctl edit srv1cv8-8.3.22.2283@2x.service

Откроется окно стандартного текстового редактора, куда внесите следующие строки, их смысл понятен без комментариев:

[Service]
Environment=SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8_2x
Environment=SRV1CV8_PORT=2540
Environment=SRV1CV8_REGPORT=2541
Environment=SRV1CV8_RANGE=2560:2591

Если вы используете отдельного пользователя, то измените строку:

Environment=SRV1CV8_DATA=/home/usr1cv8-2х/.1cv8/1C/1cv8_2x

И добавьте:

User=usr1cv8-2x

Сохраните внесенные изменения. Имя файла назначения менять не следует.

Теперь создадим каталог для кластера серверов указанный в файле конфигурации, путь следует откорректировать согласно домашнего каталога вашего пользователя:

mkdir -p /home/usr1cv8/.1cv8/1C/1cv8_2x

И установим права для нужного пользователя:

chmod -R  usr1cv8:grp1cv8 /home/usr1cv8/

После чего пробуем запустить наш экземпляр службы:

systemctl start srv1cv8-8.3.22.2283@2x

Затем проверяем ее статус:

systemctl status srv1cv8-8.3.22.2283@2x

Если все прошло нормально, то мы должны увидеть примерно следующее:

multiple-1C-servers-linux-001.pngУбедиться, что все службы запущены на целевых портах можно командой, где 25 - первые две цифры выбранного набора портов:

ss -tpln | grep 25

Где вы должны обнаружить все три запущенные службы, каждая со своим портом из диапазона 2x:

multiple-1C-servers-linux-002.pngВсе что нам осталось - добавить службу в автозагрузку:

systemctl enable srv1cv8-8.3.22.2283@2x

При создании и подключении информационных баз используйте имя сервера с явным указанием порта менеджера кластера 2541:

multiple-1C-servers-linux-003.png

На этом установка дополнительного экземпляра сервера 1С:Предприяти на платформе Linux завершена.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments