Полезное

Публикация базы 1С на веб-сервере Apache под Linux: настройка и тестирование

Вадим Заплетин 4 мин чтения
Публикация базы 1С на веб-сервере Apache под Linux: настройка и тестирование

Публикация базы 1С на веб-сервере Apache под Linux позволяет организовать доступ пользователей к учётной системе через браузер без установки толстого клиента на каждое рабочее место. Это снижает расходы на администрирование и упрощает работу с удалёнными сотрудниками. В этой статье разберём, как развернуть 1С на Apache в Ubuntu и CentOS, настроить модуль для публикации, проверить доступность сервера и решить типичные проблемы.

Для публикации 1С потребуется сервер с достаточной производительностью: минимум 4 ядра процессора, 8 ГБ оперативной памяти и быстрые диски. Если планируете одновременную работу от 10 пользователей, рекомендуем выбрать конфигурации из каталога серверов с запасом по ресурсам. Оптимальный выбор — серверные процессоры Intel Xeon или AMD EPYC и серверная оперативная память объёмом от 16 ГБ.

Требования к серверу и окружению

Перед началом установки проверьте версии компонентов. Для публикации базы 1С на веб-сервере Apache Linux подходят следующие конфигурации:

Компонент Минимальная версия Рекомендуемая версия
Apache 2.4.6 2.4.41 и выше
1С:Предприятие (сервер) 8.3.10 8.3.22 и выше
Ubuntu 18.04 LTS 20.04 LTS, 22.04 LTS
CentOS / Rocky Linux 7.x 8.x, Rocky Linux 9
ОЗУ 8 ГБ 16 ГБ и выше
Процессор 4 ядра 8 ядер и выше

Убедитесь, что на сервере установлен 1С:Предприятие сервер и работает служба ragent. Проверьте командой:

systemctl status srv1cv83

Если служба неактивна, запустите её:

systemctl start srv1cv83
systemctl enable srv1cv83

Установка Apache и необходимых модулей

Публикация базы 1С на веб-сервере Apache Ubuntu начинается с установки веб-сервера. Для Ubuntu выполните:

sudo apt update
sudo apt install apache2 -y

Для CentOS или Rocky Linux:

sudo yum install httpd -y

После установки запустите Apache и добавьте в автозагрузку:

sudo systemctl start apache2 (Ubuntu)
sudo systemctl enable apache2

Для CentOS замените apache2 на httpd.

Проверьте статус службы:

systemctl status apache2

Если Apache запущен, переходите к установке модуля для публикации 1С.

Установка модуля Apache для 1С

Модуль Apache для 1С входит в состав дистрибутива 1С:Предприятие сервер. Найдите файл модуля в каталоге установки:

/opt/1cv8/x86_64/VERSION/wsap24.so

Где VERSION — версия вашей платформы 1С (например, 8.3.22.1704).

Скопируйте модуль в каталог модулей Apache. Для Ubuntu:

sudo cp /opt/1cv8/x86_64/8.3.22.1704/wsap24.so /usr/lib/apache2/modules/

Для CentOS:

sudo cp /opt/1cv8/x86_64/8.3.22.1704/wsap24.so /usr/lib64/httpd/modules/

Создайте конфигурационный файл модуля. Для Ubuntu создайте файл /etc/apache2/mods-available/wsap24.load с содержимым:

LoadModule _1c_module /usr/lib/apache2/modules/wsap24.so

Активируйте модуль:

sudo a2enmod wsap24

Для CentOS создайте файл /etc/httpd/conf.modules.d/wsap24.conf с той же строкой LoadModule, путь к модулю укажите /usr/lib64/httpd/modules/wsap24.so.

Перезапустите Apache:

sudo systemctl restart apache2 (Ubuntu)
sudo systemctl restart httpd (CentOS)

Проверьте, что модуль загружен:

apachectl -M | grep 1c

Если вывод содержит _1c_module, модуль установлен корректно.

Настройка виртуального хоста для публикации базы 1С

Создание конфигурации виртуального хоста

Для публикации базы 1С на веб-сервере Apache Linux необходимо создать виртуальный хост. Создайте файл конфигурации. Для Ubuntu:

sudo nano /etc/apache2/sites-available/1c.conf

Для CentOS:

sudo nano /etc/httpd/conf.d/1c.conf

Добавьте в файл следующую конфигурацию:

<VirtualHost *:80>
    ServerName 1c.example.com
    DocumentRoot /var/www/1c

    <Directory /var/www/1c>
        Options -Indexes
        AllowOverride None
        Require all granted
    </Directory>

    <IfModule _1c_module>
        WSAPDebugLog /var/log/apache2/1c_debug.log
        WSAPDebugLevel 3

        <Location /base1>
            SetHandler 1c-application
            ManagedApplicationDescriptor tcp://localhost:1540/base1
        </Location>
    </IfModule>

    ErrorLog ${APACHE_LOG_DIR}/1c_error.log
    CustomLog ${APACHE_LOG_DIR}/1c_access.log combined
</VirtualHost>

Где:

  1. ServerName — доменное имя для доступа к базе
  2. /base1 — URI для доступа к базе через браузер
  3. tcp://localhost:1540/base1 — адрес информационной базы в кластере 1С (порт 1540 — стандартный порт менеджера кластера, base1 — имя базы)
  4. WSAPDebugLog — путь к файлу логов модуля для отладки
  5. WSAPDebugLevel 3 — уровень детализации логов (от 0 до 5, где 3 — средний уровень)

Создайте каталог для DocumentRoot:

sudo mkdir -p /var/www/1c
sudo chown www-data:www-data /var/www/1c (Ubuntu)
sudo chown apache:apache /var/www/1c (CentOS)

Активируйте виртуальный хост. Для Ubuntu:

sudo a2ensite 1c.conf
sudo systemctl reload apache2

Для CentOS перезапустите Apache:

sudo systemctl restart httpd

Проверка публикации и доступности базы

Откройте браузер и введите адрес:

http://1c.example.com/base1

Если настройка выполнена правильно, вы увидите окно авторизации 1С:Предприятие. Введите учётные данные пользователя базы и войдите.

Если страница не загружается, проверьте логи Apache:

sudo tail -f /var/log/apache2/1c_error.log (Ubuntu)
sudo tail -f /var/log/httpd/1c_error.log (CentOS)

Также проверьте лог модуля 1С:

sudo tail -f /var/log/apache2/1c_debug.log

Типичные ошибки:

  • 503 Service Unavailable — кластер 1С недоступен. Проверьте, запущена ли служба srv1cv83 и корректно ли указан адрес базы в ManagedApplicationDescriptor.
  • Ошибка загрузки модуля — неправильный путь к wsap24.so или несовместимая версия модуля. Убедитесь, что версия модуля соответствует версии Apache.
  • 403 Forbidden — проблемы с правами доступа к DocumentRoot. Проверьте владельца каталога и директиву Require all granted.

Настройка HTTPS для безопасного доступа

Передача учётных данных по HTTP небезопасна. Настройте HTTPS с сертификатом Let’s Encrypt. Установите Certbot:

sudo apt install certbot python3-certbot-apache -y (Ubuntu)
sudo yum install certbot python3-certbot-apache -y (CentOS)

Получите сертификат:

sudo certbot --apache -d 1c.example.com

Certbot автоматически настроит виртуальный хост для HTTPS и перенаправит HTTP-запросы на HTTPS. После завершения откройте базу по адресу:

https://1c.example.com/base1

Проверьте автоматическое обновление сертификата:

sudo certbot renew --dry-run

Оптимизация производительности веб-публикации

Для повышения скорости работы веб-клиента 1С настройте параметры Apache. Добавьте в конфигурацию виртуального хоста:

<IfModule mpm_worker_module>
    StartServers 4
    MinSpareThreads 25
    MaxSpareThreads 75
    ThreadLimit 64
    ThreadsPerChild 25
    MaxRequestWorkers 200
    MaxConnectionsPerChild 1000
</IfModule>

Эти параметры оптимизируют работу Apache в режиме многопоточности. Для серверов с высокой нагрузкой увеличьте MaxRequestWorkers до 400-600, но учитывайте объём доступной памяти.

Включите сжатие ответов для экономии трафика. Активируйте модуль deflate:

sudo a2enmod deflate (Ubuntu)

Добавьте в конфигурацию виртуального хоста:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>

Перезапустите Apache:

sudo systemctl restart apache2

Публикация нескольких баз на одном сервере

Если нужно опубликовать несколько информационных баз, добавьте для каждой отдельную секцию <Location> в конфигурацию виртуального хоста:

<Location /base1>
    SetHandler 1c-application
    ManagedApplicationDescriptor tcp://localhost:1540/base1
</Location>

<Location /base2>
    SetHandler 1c-application
    ManagedApplicationDescriptor tcp://localhost:1540/base2
</Location>

<Location /accounting>
    SetHandler 1c-application
    ManagedApplicationDescriptor tcp://localhost:1540/accounting
</Location>

Каждая база будет доступна по своему URI:

  • https://1c.example.com/base1
  • https://1c.example.com/base2
  • https://1c.example.com/accounting

При публикации нескольких баз учитывайте потребление ресурсов. Для одновременной работы 30-50 пользователей в нескольких базах потребуется сервер с 32 ГБ оперативной памяти и производительным многоядерным процессором.

Типовые конфигурации сервера для публикации 1С

Сценарий Процессор ОЗУ Диск Пользователи
Малый офис Intel Xeon E-2288G (8 ядер) 16 ГБ DDR4 SSD 240 ГБ до 10
Средний офис Intel Xeon Silver 4214 (12 ядер) 32 ГБ DDR4 SSD 480 ГБ 10-30
Крупная компания Intel Xeon Gold 5220 (18 ядер) 64 ГБ DDR4 NVMe SSD 960 ГБ 30-100
Кластер баз AMD EPYC 7443 (24 ядра) 128 ГБ DDR4 NVMe SSD 1.92 ТБ 100+

Подходящие конфигурации можно подобрать в разделе серверы. Для хранения баз 1С используйте SSD или NVMe-накопители — это критично для производительности при работе с большими объёмами данных.

Резервное копирование и мониторинг

Настройте регулярное резервное копирование базы 1С. Используйте встроенные механизмы 1С или скрипты для выгрузки базы в dt-файл:

/opt/1cv8/x86_64/8.3.22.1704/1cv8 ENTERPRISE /S localhost/base1 /N admin /P password /DumpIB /var/backups/1c/base1_$(date +\%Y\%m\%d).dt

Добавьте скрипт в cron для ежедневного запуска:

0 2 * * * /usr/local/bin/backup_1c.sh

Для мониторинга работы Apache и 1С используйте Zabbix, Prometheus или Nagios. Отслеживайте метрики:

  • Загрузка процессора и памяти
  • Количество активных соединений Apache
  • Время отклика веб-интерфейса 1С
  • Ошибки в логах Apache и модуля wsap24

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

Частые ошибки при публикации базы 1С

Ошибка: «Не удаётся установить соединение с информационной базой»

Проверьте, что служба 1С запущена:

systemctl status srv1cv83

Убедитесь, что в конфигурации виртуального хоста правильно указан адрес базы в параметре ManagedApplicationDescriptor. Формат: tcp://<хост>:<порт>/<имя_базы>. Проверьте имя базы в консоли администрирования 1С.

Ошибка: «Модуль _1c_module не загружен»

Проверьте путь к модулю в файле конфигурации. Убедитесь, что версия модуля wsap24.so соответствует версии Apache. Для Apache 2.4 используйте модуль wsap24.so, для Apache 2.2 — wsap22.so.

Ошибка: «Превышено максимальное число подключений»

Увеличьте лимит подключений в конфигурации кластера 1С. Откройте консоль администрирования, выберите рабочий процесс и измените параметр «Максимальное количество соединений с информационной базой». Также проверьте параметр MaxRequestWorkers в конфигурации Apache.

Медленная работа веб-клиента

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

Часто задаваемые вопросы

Можно ли использовать Nginx вместо Apache для публикации 1С?

Да, 1С поддерживает публикацию через Nginx, но для этого нужен другой модуль — ws_nginx. Настройка аналогична: устанавливаете модуль, создаёте конфигурацию с директивой location и указываете адрес базы. Nginx может быть предпочтительнее для высоконагруженных систем благодаря меньшему потреблению памяти.

Как ограничить доступ к веб-публикации 1С по IP-адресам?

Добавьте в секцию <Location> директиву Require ip. Например: Require ip 192.168.1.0/24 разрешит доступ только из локальной сети. Для нескольких подсетей используйте несколько директив Require ip. Также можно настроить файрвол (iptables или firewalld) для блокировки внешних подключений к портам 80 и 443.

Нужно ли устанавливать 1С:Предприятие клиент на сервере с Apache?

Нет, на сервере с Apache достаточно установить только 1С:Предприятие сервер и модуль для веб-сервера. Клиентская часть устанавливается на рабочих местах пользователей. При работе через веб-интерфейс клиент не требуется — всё взаимодействие идёт через браузер.