Публикация базы 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>
Где:
ServerName— доменное имя для доступа к базе/base1— URI для доступа к базе через браузерtcp://localhost:1540/base1— адрес информационной базы в кластере 1С (порт 1540 — стандартный порт менеджера кластера,base1— имя базы)WSAPDebugLog— путь к файлу логов модуля для отладки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/base1https://1c.example.com/base2https://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С:Предприятие сервер и модуль для веб-сервера. Клиентская часть устанавливается на рабочих местах пользователей. При работе через веб-интерфейс клиент не требуется — всё взаимодействие идёт через браузер.