При администрировании крупных информационных систем на базе платформы «1С:Предприятие 8» часто возникает необходимость тонкой настройки серверной части. Основным исполняемым файлом, управляющим кластером серверов, является агент сервера — ragent.exe (в среде Windows) или исполняемый файл ragent (в среде Linux). В этой статье мы подробно и по шагам разберем все доступные параметры запуска агента сервера 1С, изучим особенности настройки службы, включение режима отладки различных типов, а также специфику конфигурирования в операционных системах Windows и Linux.
По умолчанию при установке платформы «1С:Предприятие» создается стандартная служба со стандартными портами и настройками. Однако в реальной практике системного администратора и разработчика возникают ситуации, требующие нестандартного поведения сервера. Разберем наиболее частые сценарии:
Рассмотрим базовые ключи командной строки, которые передаются исполняемому файлу при его запуске. С их помощью настраивается сетевая топология кластера.
Параметр -port
Этот параметр указывает сетевой порт, который будет слушать сам агент сервера. Именно к этому порту обращается консоль администрирования кластера («Администрирование серверов 1С Предприятия»). По умолчанию используется значение 1540. Если нам необходимо запустить второй экземпляр службы, мы можем указать другой порт, например, 1640.
Параметр -regport
Определяет сетевой порт главного менеджера кластера (rmngr), который создается автоматически при первом запуске службы. По умолчанию используется порт 1541. Для альтернативного экземпляра службы часто выбирают значение 1641.
Параметр -range
Задает диапазоны IP-портов, из которых динамически выбираются сетевые порты для рабочих процессов (rphost). По умолчанию используется диапазон 1560:1591. Если на сервере планируется запуск большого количества рабочих процессов или нескольких кластеров, диапазон необходимо расширить или явно разграничить. Формат указания диапазона: 1560:1591 или несколько диапазонов через запятую.
Параметр -d
Указывает путь к каталогу, в котором будет храниться реестр кластера серверов (включая файлы настроек, список информационных баз, сеансы и т.д.). По умолчанию в операционной системе Windows данные сохраняются по пути %LOCALAPPDATA%\1C\1Cv8 (обычно это папка профиля пользователя, под которым запущена служба, например, C:\Windows\ServiceProfiles\LocalService\AppData\Local\1C\1Cv8). Крайне рекомендуется переносить этот каталог на отдельный быстрый диск, используя данный ключ.
Параметр -seclev
Определяет уровень безопасности устанавливаемых соединений. Поддерживаются следующие значения:
0 — шифрование отключено. Данный режим обеспечивает максимальную производительность, так как трафик между клиентом и сервером не шифруется.1 — защищенное соединение устанавливается только в момент аутентификации пользователя, дальнейший обмен идет в открытом виде.2 — постоянное шифрование всего передаваемого трафика. Обеспечивает максимальную безопасность, но создает дополнительную нагрузку на процессоры сервера и клиента.Исполняемый файл ragent.exe обладает встроенным функционалом по установке и удалению себя в качестве системной службы Windows. Нам не требуется использовать сторонние утилиты. Проанализируем ключи управления службой:
Установка службы (-instsrvc)
Регистрирует агент как службу Windows. Обычно используется совместно с указанием учетной записи и пароля, от имени которой будет осуществляться запуск.
Удаление службы (-rmsrvc)
Полностью удаляет зарегистрированную службу из системы.
Указание пользователя (-usr и -pwd)
Ключ -usr задает имя пользователя операционной системы (например, .\USR1CV8), а ключ -pwd — его пароль. Это критически важно, так как запуск службы от имени системной учетной записи (Local System) не рекомендуется из соображений безопасности.
Запуск и остановка (-start и -stop)
Позволяют запустить или остановить уже зарегистрированную службу напрямую через командную строку.
Давайте посмотрим на практический пример полной регистрации службы с измененными портами и перенесенным каталогом данных:
"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -instsrvc -usr ".\USR1CV8" -pwd "StrongPassword123" -port 1640 -regport 1641 -range 1660:1691 -d "D:\1C_Base_Data\Cluster" -debug
В данном примере мы зарегистрировали службу для версии платформы 8.3.22.1709, назначили ей порты из пула 16xx, перенесли реестр на диск D в папку D:\1C_Base_Data\Cluster и активировали режим отладки.
Один из самых частых вопросов на форумах посвящен включению режима отладки на сервере. Без него разработчики не могут использовать точки останова в серверных модулях (например, при проведении документов или выполнении фоновых заданий). Выясним, какие варианты настройки существуют в современных версиях платформы 1С:Предприятие 8.3.
Начиная с версии 8.3, платформа поддерживает два протокола отладки: классический TCP/IP и современный HTTP. Рассмотрим подробнее каждый из них.
Классическая отладка по протоколу TCP/IP
Для ее активации используется простой ключ -debug. При этом рабочие процессы сервера начинают использовать для передачи отладочной информации случайные порты из диапазона, заданного ключом -range. Это может вызывать проблемы, если сервер отделен от разработчиков сетевым экраном (брандмауэром).
Пример строки запуска с классической отладкой:
ragent.exe -debug -port 1540 -regport 1541 -range 1560:1591 -d "C:\1C_Data"
Отладка по протоколу HTTP
Этот режим более стабилен при работе через сложные сетевые маршруты, VPN или интернет. При использовании HTTP-отладки запускается специальная служба (сервер отладки) dbgs.exe, которая централизованно координирует процесс отладки.
Для управления HTTP-отладкой применяются следующие расширенные ключи:
-debug -http — включает режим отладки по протоколу HTTP. Локальный сервер отладки запускается автоматически на порту 1550 по умолчанию.-debugServerAddr <адрес> — позволяет указать сетевой адрес (IP или DNS-имя) компьютера, на котором запущен сервер отладки. Это полезно, если вы используете один выделенный сервер отладки для нескольких серверов 1С.-debugServerPort <порт> — переопределяет стандартный порт сервера отладки (вместо 1550 можно указать любой свободный, например, 1555).-debugServerPwd <пароль> — защищает сервер отладки паролем, предотвращая несанкционированное подключение сторонних пользователей к сессиям отладки.Посмотрим на пример конфигурации с использованием HTTP-отладки на нестандартном порту:
ragent.exe -debug -http -debugServerPort 1555 -port 1540 -regport 1541 -range 1560:1591 -d "C:\1C_Data"
В операционных системах семейства Linux (Ubuntu, Debian, CentOS, RedHat) запуск агента сервера выполняется через системный менеджер служб systemd. В этом случае мы не прописываем параметры командной строки напрямую в исполняемый файл. Вместо этого используются конфигурационные файлы среды окружения.
В зависимости от дистрибутива, файл конфигурации может находиться по пути:
/etc/default/srv1cv8 — для систем на базе Debian/Ubuntu./etc/sysconfig/srv1cv8 — для систем на базе RedHat/CentOS/RPM.Проанализируем основные переменные, которые сопоставляются с ключами запуска ragent:
SRV1CV8_PORT — полностью аналогично ключу -port. Задает порт агента (например, 1540).SRV1CV8_REGPORT — аналог ключа -regport (например, 1541).SRV1CV8_RANGE — задает диапазон портов для рабочих процессов (например, 1560:1591).SRV1CV8_DATA — указывает путь к каталогу данных кластера (аналог ключа -d). Например, /var/1c/data.SRV1CV8_SECLEV — уровень безопасности соединений (аналог ключа -seclev).SRV1CV8_DEBUG — переменная для включения отладки. Для активации классической отладки ей присваивают значение -debug или -debug -tcp. Для включения HTTP-отладки задают значение -debug -http. По умолчанию переменная пуста, что означает отключенную отладку.SRV1CV8_KEYTAB — определяет путь к файлу keytab для настройки сквозной доменной авторизации (Kerberos).Давайте посмотрим, как выглядит типичный настроенный конфигурационный файл в Linux:
# Конфигурационный файл /etc/default/srv1cv8
SRV1CV8_PORT=1540
SRV1CV8_REGPORT=1541
SRV1CV8_RANGE=1560:1591
SRV1CV8_DATA=/var/1c/data
SRV1CV8_DEBUG="-debug -http"
SRV1CV8_SECLEV=0
После изменения этого файла необходимо перезапустить службу сервера 1С, чтобы новые параметры вступили в силу. Выполним следующие команды в терминале Linux:
sudo systemctl daemon-reload
sudo systemctl restart srv1cv8-8.3.22.1709.service
Что делать, если служба сервера 1С уже установлена, но вам нужно добавить в нее параметры (например, включить отладку или перенести каталог данных)? Разберем по шагам самый надежный и безопасный способ изменения параметров через реестр Windows без удаления и повторной установки службы.
Win + R, введите regedit и нажмите Enter для запуска редактора реестра.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.1C:Enterprise 8.3 Server Agent (или содержит номер версии платформы, например, 1C:Enterprise 8.3.22.1709 Server Agent).ImagePath. Этот параметр имеет тип REG_EXPAND_SZ и содержит полную строку запуска службы.ImagePath для его редактирования.
"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
services.msc), найдите службу сервера 1С и выполните ее перезапуск.После перезапуска службы все изменения вступят в силу. Вы можете проверить работу отладки, запустив Конфигуратор и попробовав подключиться к серверному сеансу.
При ручном изменении параметров запуска администраторы часто совершают несколько классических ошибок. Проанализируем их, чтобы не допускать в будущем:
-d с путем, содержащим пробелы (например, -d D:\1C Base Data), обязательно берите весь путь в двойные кавычки: -d "D:\1C Base Data". В противном случае служба не сможет запуститься, выдав ошибку.-range не перекрывали друг друга. Если два процесса попытаются занять один и тот же порт, один из них завершится аварийно.-d, убедитесь, что у пользователя операционной системы, от имени которого запускается служба (например, USR1CV8), есть полные права (чтение, запись, изменение) на этот новый каталог. Без необходимых прав служба упадет при запуске.-debug, но отладка все равно не работает, проверьте, открыты ли порты диапазона -range (для TCP-отладки) или порт 1550/выбранный порт (для HTTP-отладки) в брандмауэре Windows или сетевом экране Linux.Мы подробно разобрали все особенности конфигурирования агента сервера 1С ragent.exe. Использование правильных параметров запуска позволяет гибко масштабировать систему, обеспечивать безопасность данных и значительно упрощать процесс разработки и отладки программных решений.