Содержание страницы
Для публикации нужно установить компонент WS, установка локалей и дополнительных пакетов не обязательна. Если нужно на одном сервере опубликовать несколько информационных баз для разных платформ, то нужно воспользоваться multi instance apache2 и сменой MPM на mpm_worker. Единственным ограничением будет использование отдельного порта для каждого нового инстанса.
Предварительная подготовка
Подготовка сервера для работы это личные предпочтения, у каждого они свои, например вот
Проверить наличие contrib non-free non-free-firmware в source.list
Пример Debian 13
deb http://mirror.yandex.ru/debian trixie main contrib non-free non-free-firmware
deb-src http://mirror.yandex.ru/debian trixie main contrib non-free non-free-firmware
deb http://mirror.yandex.ru/debian trixie-updates main contrib non-free non-free-firmware
deb-src http://mirror.yandex.ru/debian trixie-updates contrib non-free non-free-firmware
deb http://mirror.yandex.ru/debian trixie-backports main
deb-src http://mirror.yandex.ru/debian trixie-backports main
deb http://security.debian.org/ trixie-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/ trixie-security main contrib non-free non-free-firmware
При необходимости добавить нужные локали, для корректной работы 1С нужна ru_RU.UTF8
locale-gen en_US.UTF-8
locale-gen ru_RU.UTF-8
update-locale LANG=ru_RU.UTF-8
dpkg-reconfigure locales
Для корректной работы необходимо установить шрифты из состава Microsoft Core Fonts.
apt install -y xfonts-utils cabextract fonts-liberation libmspack0 ttf-mscorefonts-installer fontconfig
fc-cache –fv
Внешние библиотеки. Для работы сервера 1С в Linux могут потребоваться следующие библиотеки
- Для визуализации штампа электронной подписи, отображения диаграмм нужны imagemagick и ghostscript
- Для сохранения файлов в формате PDF нужен libfreetype
- Для экспорта и импорта файлов в формат XLS нужны libgsf-1 (Libgsf) и libgsf-1-common
- Для работы с внешними источниками данных нужны glib2.0 и libodbc (UnixOdbc)
- Для аутентификации средствами ОС нужны libkrb5 (Kerberos) и libgssapi_krb5 (GSS-API Kerberos)
- Для корректной работы 1С нужен curl
apt install -y imagemagick ghostscript libgsf-1-114 libgsf-bin libgsf-1-common
Установка модуля расширения веб-сервера 1С
Скачать с сайта https://releases.1c.ru/ файл дистрибутива из раздела Технологическая платформа
Скачиваем и копируем архив Технологическая платформа 1С:Предприятия (64-bit) для Linux на нужный Linux сервер
Распаковать, дать права на выполнение и выполнить установку.
Мы устанавливаем модули расширения веб-сервера 1С, так же установится клиент 1С
cd /root/8.3.27.1989/
tar xvzf server64_8_3_27_1989.tar.gz
chmod +x ./setup-full-8.3.27.1989-x86_64.run
./setup-full-8.3.27.1989-x86_64.run --mode unattended --enable-components ws,ru
Опции установщика
- mode unattended — включает пакетный режим
- enable-components — служит для указания компонентов
- additional_admin_functions — установка утилиты административной консоли
- client_full — установить толстый клиент
- client_thin — установить тонкий клиент (без возможности работы с файловым вариантом информационной базы)
- client_thin_fib — установить тонкий клиент, который позволяет работать с любым вариантом информационной базы
- config_storage_server — установить сервер хранилища конфигураций
- integrity_monitoring — установить утилиту контроля целостности
- liberica_jre — установить Java Runtime Environment (JRE)
- server — установить кластер серверов
- server_admin — установить консоль администрирования кластера серверов
- ws — требуется установить модули расширения веб-сервера
Установка Apache2
Установим сразу Apache2 и Certbot для будущего SSL сертификата от Let’s Encrypt
apt install -y apache2 certbot python3-certbot-apache
Добавляем А запись в DNS и получаем сертификат для домена web1c.notdev.ru
Проверка
certbot certonly --dry-run --agree-tos --email 'ssl@notdev.ru' --webroot -w /var/www/html/ --domains 'web1c.notdev.ru'
Получение сертификата
certbot --agree-tos --email 'ssl@notdev.ru' --apache --domains 'web1c.notdev.ru'
Тонкая настройка Apache2
Для работы пользователей в режиме тонкого клиента рассчитывается в зависимости от количества одновременно работающих пользователей и ресурсов выделенных для Apache
Рекомендуется для 1С
- KeepAlive On -> Apache не разрывает TCP-соединение после отправки ответа клиенту. Клиент (1С) использует то же соединение для следующего запроса
- MaxKeepAliveRequests 200 ->Лимит на количество запросов, которое можно отправить в рамках одного постоянного соединения
- KeepAliveTimeout 10 -> Таймаут ожидания следующего запроса. Если клиент не выполняет никаких действий дольше 10 секунд, Apache завершит соединение, чтобы освободить ресурсы для других пользователей
- Timeout 90 -> Глобальный таймаут передачи данных. Это таймаут на процесс отправки или получения одного конкретного запроса. Если пользователи жалуются, что отчеты формируются дольше минуты, увеличьте до 120-300
nano /etc/apache2/conf-available/1c-performance.conf
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 10
Timeout 90
Включаем конфиг, проверяем и применяем
a2enconf 1c-performance
apachectl -t
systemctl reload apache2
Выбор и настройка MPM (Multi-Processing Module)
MPM (Multi-Processing Module) — это «движок» Apache, который отвечает за то, как именно сервер будет обрабатывать входящие соединения (запросы пользователей).
MPM
- Prefork — Старая и надежная модель, создает несколько дочерних процессов, каждый из которых содержит один поток и обрабатывает только одно соединение за раз. Потребление оперативной памяти очень высокое
- Worker — Гибридная модель, несколько процессов, каждый из которых содержит множество потоков. Каждый поток обрабатывает одно соединение. Потребление оперативной памяти среднее
- Event — Асинхронная модель, основан на Worker MPM, но с выделенным потоком-слушателем, который управляет Keep-Alive соединениями. Потребление оперативной памяти среднее. Требует тонкой настройки
По умолчанию Apache2 использует mpm_event, в некоторых рекомендациях можно встретить что следует использовать mpm_worker, и даже mpm_prefork если требуется большая производительность на 1 поток. Модуль mpm_event для 1С требует настройки и может иногда вести себя не стабильно. Тестируете все, и выбирайте нужное.
Смена модуля, выключить 2 других и включить нужный, по умолчанию используется mpm_event
a2dismod mpm_event
a2dismod mpm_prefork
a2enmod mpm_worker
Бекап стандартной конфигурации mpm_event и mpm_worker
cp /etc/apache2/mods-available/mpm_event.conf{,.bak}
cp /etc/apache2/mods-available/mpm_worker.conf{,.bak}
Редактируем конфигурацию выбранного модуля
nano /etc/apache2/mods-available/mpm_event.conf или nano /etc/apache2/mods-available/mpm_worker.conf
Пример конфигурации для модулей mpm_event и mpm_worker, до 30 пользователей, VM 4 ядра 4 Гб оперативной памяти
StartServers 2
MinSpareThreads 15
MaxSpareThreads 30
ThreadLimit 32
ThreadsPerChild 16
MaxRequestWorkers 64
MaxConnectionsPerChild 1000
Применяем
systemctl reload apache2
Публикация баз 1С
Создаем пустой конфиг и активируем его
touch /etc/apache2/conf-available/upp.conf
a2enconf upp
Переходим в директорию нужной версии 1С платформы
cd /opt/1cv8/x86_64/8.3.27.1989/
Публикуем базу upp, что находится на сервере 1s.notdev.local
./webinst -apache24 -wsdir upp -dir '/var/www/1c/upp' -connstr 'Srvr=1s.notdev.local;Ref=upp;' -confPath /etc/apache2/conf-available/upp.conf
Применяем изменения
systemctl reload apache2
Идем в браузер проверяем работоспособность публикации https://web1c.notdev.ru/upp
Базовая аутентификация для повышения защиты при работе через интернет
Установим утилиту для создания файла базовой аутентификации .htpasswd
apt install apache2-utils
Создаем фаил учетная запись 1s-access пароль $up@DupaPas5w0rd
htpasswd -b /var/www/1c/.htpasswd 1s-access $up@DupaPas5w0rd
Создаем фаил .htaccess где запрещаем всем кроме авторизованных, можно так же добавить ip адреса что могут ходить без пароля.
nano /var/www/1c/.htaccess
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/1c/.htpasswd
Require valid-user
После этого копируем .htaccess в папку публикации /var/www/1c/upp, после чего для данной публикации будет действовать базовая авторизация.
cp /var/www/1c/.htaccess /var/www/1c/upp
Пользователям будет очень не удобно вводить 2 пароля, поэтому базовую авторизацию можно проходить из доп параметров подключения.
Через GUI при создании базы,
- На веб-сервере
- Адрес информационно базы https://web1c.notdev.ru/upp/
- Дополнительно
- Выберите вариант использования прокси
- Не использовать прокси
- Выберите способ аутентификации пользователя веб-сервера
- Выбирать автоматически
- Далее
- Далее
- Вариант аутентификации (определения пользователя)
- Выбирать автоматически
- Дополнительные параметры запуска:
- /WSN 1s-access /WSP $up@DupaPas5w0rd
- Готово
- Выберите вариант использования прокси
Пример файла upp.v8i
[УПП (NOTDEV)]
Connect=ws="https://web1c.notdev.ru/upp/";
Folder=/
External=0
UseProxy=0
App=ThinClient
WA=1
Version=8.3
WSA=1
AdditionalParameters=/WSN 1s-access /WSP $up@DupaPas5w0rd
Дополнительные настройки
- Установка 1С сервера
- Установка PostgreSQL для 1С
- Установка HASP для 1С
- Публикация информационных баз 1C используя Apache2
Дополнительная информация