Про 1С и перенос
1С:Предприятие одна из самых распространённых систем автоматизации бизнеса в России и странах СНГ. Однако перенос сервера 1С с Windows на Linux вызывает у администраторов ряд сложностей. Во-первых, официальная документация 1С фрагментирована и разбросана по разным источникам (ИТС, портал 1С, форумы). Во-вторых, типичная конфигурация «сервер 1С + PostgreSQL на одном железе» требует тонкой настройки параметров ядра, лимитов процессов и СУБД. В-третьих, 1С предъявляет специфические требования к файловой системе, оперативной памяти и сетевым настройкам, без учёта которых производительность падает, а кластер начинает «сыпаться» ошибками. В этой статье мы развернём сервер 1С на Linux (Ubuntu Server 22.04 LTS), настроим PostgreSQL, оптимизируем параметры системы и решим типичные проблемы, такие как «Too many open files».
Решение
Сервер 1С в Linux состоит из трёх основных компонентов:
-
Агент сервера (
ragent) центральный процесс, управляющий кластером. Порт по умолчанию 1540. -
Рабочий процесс (
rphost) процессы, выполняющие пользовательские запросы. Порт по умолчанию 1541 и выше. - СУБД PostgreSQL (наиболее распространённый выбор для Linux) или Tantor SE 1C (специализированная сборка от 1С).
Основные принципы успешной настройки:
- Использовать официальную сборку PostgreSQL от 1С, которая содержит оптимизации и патчи для работы с платформой. Подробные требования к аппаратуре и программному обеспечению для установки сервера 1С приведены в официальной документации на сайте ИТС .
- Разнести WAL-журналы PostgreSQL и основную базу по разным дискам для повышения производительности.
- Настроить лимиты открытых файлов и памяти для пользователя
usr1cv8, так как 1С открывает множество соединений. Рекомендации по настройке приведены в руководстве администратора клиент-серверного варианта . - Оптимизировать параметры PostgreSQL в соответствии с объёмом ОЗУ и количеством пользователей.
В этой статье мы установим платформу 1С:Предприятие 8.3 (64-битная) на Ubuntu 22.04 LTS, настроим PostgreSQL 15 (патченную версию от 1С), создадим кластер и информационную базу.
Пошаговая инструкция
1. Требования к оборудованию и операционной системе
Перед установкой убедитесь, что сервер соответствует минимальным требованиям. Для production-нагрузок рекомендуется использовать 64-битную версию ОС и платформы .
Минимальные требования для кластера 1С (64-бит) :
| Параметр | Значение |
|---|---|
| Процессор | x86-64 (Intel Xeon/AMD EPYC), ARM64 или Эльбрус (только с лицензией CORP) |
| ОЗУ | 4 ГБ (рекомендуется 8 ГБ и более) |
| Диск | SSD или NVMe, от 1 ГБ под платформу |
| Порты | USB (для HASP-ключа), TCP 1540, 1541, 1560–1591 |
Поддерживаемые дистрибутивы Linux (x86-64) :
- Astra Linux Special Edition — 1.6, 1.7, 1.8 (ядро generic)
- Alt Linux — 8 SP, 10 SP, Server 10
- Ubuntu — 20.04 LTS, 22.04 LTS, 24.04 LTS
- Debian — 10, 11, 12
- Red Hat Enterprise Linux — 8, 9
- Oracle Linux — 8, 9
2. Подготовка системы
2.1. Обновление системы и установка зависимостей
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl unzip mc htop ntp
2.2. Настройка имени хоста
sudo hostnamectl set-hostname 1c-server.local
echo "192.168.1.10 1c-server.local" | sudo tee -a /etc/hosts
2.3. Отключение брандмауэра (на время настройки)
sudo ufw disable
В production брандмауэр настраивается после установки: открываются порты 1540, 1541, 5432 (PostgreSQL), 22 (SSH).
3. Установка PostgreSQL (патченная версия от 1С)
1С рекомендует использовать специальную сборку PostgreSQL, доступную на портале releases.1c.ru . Для Ubuntu установка выполняется через DEB-пакеты.
3.1. Добавление репозитория PostgreSQL 1С
# Добавляем ключ репозитория
wget --quiet -O - https://postgresql.1c.ru/keys/1c.asc | sudo apt-key add -
# Добавляем репозиторий (для Ubuntu 22.04)
echo "deb http://postgresql.1c.ru/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/1c_postgresql.list
sudo apt update
3.2. Установка PostgreSQL
Узнайте актуальную версию на postgresql.1c.ru. На момент написания PostgreSQL 15:
sudo apt install -y postgresql-15-1c
После установки проверьте статус:
sudo systemctl status postgresql
3.3. Настройка PostgreSQL
Основной конфигурационный файл: /etc/postgresql/15/main/postgresql.conf
Рекомендуемые параметры для сервера с 32 ГБ ОЗУ и 50+ пользователями :
# Подключения
max_connections = 200 # количество одновременных подключений
# Память
shared_buffers = 8GB # 25% от ОЗУ
work_mem = 128MB # ОЗУ / 64..128
maintenance_work_mem = 2GB # ОЗУ / 16
effective_cache_size = 24GB # ОЗУ - shared_buffers
# Диск
random_page_cost = 1.1 # для SSD/NVMe (1.1-1.3)
effective_io_concurrency = 200 # для SSD
# WAL
min_wal_size = 2GB
max_wal_size = 8GB
wal_buffers = 16MB
# Автовакуум
autovacuum = on
autovacuum_max_workers = 4 # половина от количества ядер CPU
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.02
# Синхронизация
fsync = on
synchronous_commit = off # увеличивает производительность, но возможна потеря последних транзакций
Важно: после изменения параметров перезапустите PostgreSQL:
sudo systemctl restart postgresql
3.4. Настройка доступа к PostgreSQL
Отредактируйте /etc/postgresql/15/main/pg_hba.conf:
# Разрешить локальные подключения с паролем
host all all 127.0.0.1/32 md5
# Разрешить подключения из локальной сети (при необходимости)
host all all 192.168.1.0/24 md5
Создайте базу данных и пользователя для 1С:
sudo -u postgres psql
CREATE DATABASE "1C_Accounting" WITH ENCODING='UTF8' LC_COLLATE='ru_RU.UTF-8' LC_CTYPE='ru_RU.UTF-8';
CREATE USER "1c_user" WITH PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE "1C_Accounting" TO "1c_user";
\q
4. Установка платформы 1С:Предприятие
4.1. Скачивание дистрибутива
Дистрибутив технологической платформы для Linux доступен на releases.1c.ru (требуется регистрация и действующий договор ИТС). Начиная с версии 8.3.20, 1С предоставляет единый дистрибутив в виде .run-файлов, что упрощает установку . Файл называется 1c-enterprise83-server_8.3.*_amd64.deb или setup-full-*-x86_64.run.
Загрузите его на сервер.
4.2. Установка
Для Debian-систем (Ubuntu):
sudo dpkg -i 1c-enterprise83-server_8.3.*_amd64.deb
Если возникает ошибка зависимостей, выполните:
sudo apt --fix-broken install
Для установки с использованием единого дистрибутива (.run-файл):
chmod +x setup-full-8.3.*-x86_64.run
sudo ./setup-full-8.3.*-x86_64.run
Подробная инструкция по установке в различных Linux-системах (Debian/Ubuntu и CentOS/RHEL) приведена в официальной документации на ИТС .
Установщик автоматически создаст пользователя usr1cv8, от которого работают процессы сервера, и добавит systemd-сервисы :
-
srv1cv83— агент сервера (ragent) -
srv1cv83-<port>— рабочие процессы (rphost)
4.3. Настройка лимитов для пользователя usr1cv8
Типичная ошибка при работе 1С на Linux Too many open files. Её решение увеличение лимитов .
Способ 1: через limits.conf
sudo tee -a /etc/security/limits.conf << EOF
usr1cv8 soft nofile 65000
usr1cv8 hard nofile 65000
usr1cv8 soft nproc 32768
usr1cv8 hard nproc 65536
usr1cv8 soft core unlimited
usr1cv8 hard core unlimited
EOF
Способ 2: через systemd (более надёжный)
sudo mkdir -p /etc/systemd/system/srv1cv83.service.d
sudo tee /etc/systemd/system/srv1cv83.service.d/override.conf << EOF
[Service]
LimitNOFILE=65000
LimitNOFILESoft=65000
LimitNPROC=65536
EOF
sudo systemctl daemon-reload
4.4. Запуск и проверка
Согласно официальной документации 1С , запуск агента сервера выполняется через systemd: sudo systemctl enable srv1cv83sudo systemctl start srv1cv83
sudo systemctl status srv1cv83
Проверьте, что порты слушаются:
sudo netstat -tlnp | grep 1540
sudo netstat -tlnp | grep 1541
Проверьте, запущены ли процессы кластера :
ps ax | grep "1C/v8.3"
5. Настройка кластера 1С
Управление кластером выполняется через оснастку 1С (на Windows) или через утилиту командной строки rac (Remote Administration Console), входящую в состав платформы. Подробное описание администрирования кластера приведено в главе 5 руководства администратора .
5.1. Установка консоли администрирования на рабочую станцию
На компьютере администратора (Windows) установите клиентскую часть 1С:Предприятие, включающую оснастку «Администрирование серверов 1С:Предприятия».
5.2. Создание информационной базы
- Запустите оснастку, укажите адрес сервера:
1c-server.local(порт 1540). - В разделе «Кластеры» будет отображён автоматически созданный кластер.
- Создайте информационную базу:
- Имя: «Бухгалтерия»
- Тип: «Клиент-серверная»
- Сервер баз данных:
localhost - Имя базы:
1C_Accounting - Пользователь SQL:
1c_user - Пароль:
strong_password
5.3. Настройка параметров кластера через RAC
На сервере можно использовать утилиту rac для управления. Примеры команд :
# Аутентификация
/opt/1C/v8.3/x86_64/rac auth --user=Administrator --password=
# Просмотр кластеров
/opt/1C/v8.3/x86_64/rac cluster list
# Изменение параметров кластера (память)
/opt/1C/v8.3/x86_64/rac cluster update --cluster=<cluster-id> --memory-size=70
6. Оптимизация системы для работы 1С
6.1. Настройка параметров ядра Linux
Увеличьте максимальное количество открытых файлов для всей системы:
echo "fs.file-max = 65000" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6.2. Настройка сетевых параметров (для высоких нагрузок)
При высоком количестве подключений может потребоваться настройка TCP-стека:
sudo tee -a /etc/sysctl.conf << EOF
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.somaxconn = 1024
net.core.netdev_max_backlog = 5000
EOF
sudo sysctl -p
6.3. Отключение прозрачных огромных страниц (Transparent Huge Pages)
THP может негативно влиять на производительность PostgreSQL:
echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
Для постоянного отключения добавьте в /etc/rc.local или используйте systemd.
6.4. Установка дополнительных библиотек и шрифтов
Для корректной работы платформы 1С в Linux необходимо установить дополнительные библиотеки и шрифты Microsoft Core Fonts :
# Установка библиотек
apt-get install libfreetype6 libgsf-1-common unixodbc glib2.0
# Установка шрифтов Microsoft Core Fonts
apt-get -y install ttf-mscorefonts-installer
fc-cache –fv
7. Резервное копирование
Согласно документации 1С , операции резервного копирования в клиент-серверном варианте выполняются штатными средствами СУБД.
7.1. Бэкап PostgreSQL
Создайте скрипт для ежедневного дампа:
#!/bin/bash
BACKUP_DIR=/backup/postgresql
DATE=$(date +%Y-%m-%d)
pg_dump -U postgres 1C_Accounting > $BACKUP_DIR/1c_backup_$DATE.sql
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete
Добавьте в crontab:
0 2 * * * /usr/local/bin/backup_1c.sh
7.2. Бэкап конфигурации кластера
Конфигурация кластера хранится в каталоге /var/lib/1C/. Регулярно копируйте его.
Устранение распространённых проблем
Мы развернули сервер 1С на Linux (Ubuntu 22.04 LTS) с использованием PostgreSQL (патченная версия от 1С), настроили кластер, увеличили лимиты системы для работы с большим количеством соединений и оптимизировали параметры СУБД. Настройка сервера 1с linux требует внимания к деталям: выбор правильной версии PostgreSQL, настройка лимитов открытых файлов, корректная конфигурация памяти и дисков. При соблюдении этих рекомендаций сервер 1С на Linux работает стабильно и производительно, не уступая Windows-реализации, а в ряде сценариев (высокая нагрузка, стоимость лицензий) даже превосходит её. Подробная документация по всем аспектам администрирования доступна в Информационной системе 1С:ИТС .







