Например, если вы не хотите держать свои данные в облаке, но доступ хотелось бы получать из любого места. Наш сервер Ubuntu был запущен в виртуальной среде VmWare ESXi.
Итак приступим.
Все операции проделывались на:
- Ubuntu server 20.04 LTS x64
- Postgres 12.5 от 1С
- 1C 8.3.21.1302
Первый ШАГ.
Установите Ubuntu server 20.04 LTS.
Второй ШАГ.
Устанавливаем POSTGRES.Сделаем предварительную подготовку:
deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
Импортируем подписи и обновляем систему:
# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
# apt update && sudo apt dist-upgrade
Генерируем русскую локаль, именно с ней будет работать скрипт инициализации базы данных.
# locale-gen en_US.UTF-8 ru_RU.UTF-8
# update-locale LANG=ru_RU.UTF8
# dpkg-reconfigure locales
# locale-gen en_US.UTF-8 ru_RU.UTF-8
# update-locale LANG=ru_RU.UTF8
# dpkg-reconfigure locales
Устанавливаем необходимые зависимости:
# wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7_amd64.deb
# dpkg -i libicu55_55.1-7_amd64.deb
# wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
# dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
# apt install libllvm6.0 postgresql-common
Установим дистрибутив POSTGRES:
# dpkg -i libpq5_12.5-3.1C_amd64.deb postgresql-client-12_12.5-3.1C_amd64.deb postgresql-12_12.5-3.1C_amd64.deb
Теперь сделаем подготовку POSTGRES:
# sudo -u postgres psql
Устанавливаем пароль пользователю в базе:
Делаем подготовку для запуска сервиса 1С. Сам он не устанавливается в новых версиях, это связано с тем, что теперь под Unix могут работать сразу несколько версий 1С.
Поставим пакеты на заморозку:
# apt-mark hold libpq5
# apt-mark hold postgresql-12
# apt-mark hold postgresql-client-12
# apt-mark hold libpq5
# apt-mark hold postgresql-12
# apt-mark hold postgresql-client-12
Теперь сделаем подготовку POSTGRES:
Устанавливаем пароль пользователю в базе:
alter user postgres with password 'наш_пароль';
$ exit
Перезапускаем сервис:
# service postgresql restart
Проверяем, что он запустился и слушает порт по умолчанию:
Некоторая подготовка:
Шрифты Microsoft:
# apt-get install ttf-mscorefonts-installer fontconfig
# fc-cache -fv
Пакеты, необходимые 1С:
# apt-get install libfreetype6 libgsf-1-common unixodbc glib2.0 barcode
Теперь сам дистрибутив 1С:
# ./setup-full-8.3.21.1302-x86_64.run
---
Выберите компоненты
1С:Предприятие [Y/n] :
1С:Предприятие - Тонкий клиент [y/N] :
1С:Предприятие - Тонкий клиент, файловый вариант [y/N] :
Сервер 1С:Предприятия 8 [y/N] : y
Модули расширения веб-сервера [y/N] : y
Администрирование сервера 1С:Предприятия [y/N] :
Интерфейсы на различных языках : Y (Cannot be edited)
......
Сервер хранилища конфигураций 1С:Предприятия [y/N] :
Дополнительные функции администрирования [y/N] :
Дополнительно : Y (Cannot be edited)
Дополнительно - Дистрибутивы тонкого клиента [Y/n] :
Дополнительно - Liberica JRE [y/N] :
Дополнительно - Контроль целостности [y/N] :
Верно ли выбранное выше? [Y/n]:
---
Перезапускаем сервис:
# service postgresql restart
Проверяем, что он запустился и слушает порт по умолчанию:
# netstat -an | grep -i list
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
Так же можно проверить статус сервиса:
Так же можно проверить статус сервиса:
# service postgresql status
postgresql.service - Etersoft PostgreSQL database server
Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)
Active: active (running) ....
Третий ШАГ.
Устанавливаем 1СНекоторая подготовка:
Шрифты Microsoft:
# apt-get install ttf-mscorefonts-installer fontconfig
# fc-cache -fv
Пакеты, необходимые 1С:
# apt-get install libfreetype6 libgsf-1-common unixodbc glib2.0 barcode
Теперь сам дистрибутив 1С:
# ./setup-full-8.3.21.1302-x86_64.run
---
Выберите компоненты
1С:Предприятие [Y/n] :
1С:Предприятие - Тонкий клиент [y/N] :
1С:Предприятие - Тонкий клиент, файловый вариант [y/N] :
Сервер 1С:Предприятия 8 [y/N] : y
Модули расширения веб-сервера [y/N] : y
Администрирование сервера 1С:Предприятия [y/N] :
Интерфейсы на различных языках : Y (Cannot be edited)
......
Сервер хранилища конфигураций 1С:Предприятия [y/N] :
Дополнительные функции администрирования [y/N] :
Дополнительно : Y (Cannot be edited)
Дополнительно - Дистрибутивы тонкого клиента [Y/n] :
Дополнительно - Liberica JRE [y/N] :
Дополнительно - Контроль целостности [y/N] :
Верно ли выбранное выше? [Y/n]:
---
Делаем подготовку для запуска сервиса 1С. Сам он не устанавливается в новых версиях, это связано с тем, что теперь под Unix могут работать сразу несколько версий 1С.
Подготовка:
# systemctl link /opt/1cv8/x86_64/8.3.21.1302/srv1cv8-8.3.21.1302@.service
# systemctl enable Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
# systemctl enable Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Теперь запуск:
# service srv1cv8-8.3.21.1302@default start
Проверяем подключение через Администрирование 1С Серверов.
На этом шаге мы можем установить свою базу через 1С Предприятие. Настройки будут выглядеть так:
Пароль указываем, который задали при создании пользователя в базе postgres.
ВАЖНО: имя сервера serv1c, выбранное в нашем случае, должно быть прописано в DNS, иначе мы будем везде получать сообщение об ошибке, что сервер serv1c не найден. Для удобства и меньшей путаницы, самому серверу ubuntu лучше дать то же имя.
Если ещё не устанавливали APACHE сервер:
# apt install apache2
Допустим мы решили нашу базу назвать orgbuh.
Перезапустим apache:
# service apache2 restart
Можно проверять. Сервер будет доступен по адресу:
http://serv1c/orgbuh
Для этого будем использовать бесплатные сертификаты. Правда их нужно продлять каждые 3 месяца.
Установим CERTBOT:
# apt install certbot
И модуль для Apache:
# apt install python3-certbot-apache
Получаем сертификат и настраиваем Apache (всё одной командой):
# certbot run -a webroot -i apache -w /var/www/html -d serv1c.domain.ru
!!! serv1c.domain.ru по порту 443 должен быть переадресован на наш сервер из Интернета, чтобы certbot смог завершить свою установку корректно.
Если всё сделали правильно, то Ваша база будет доступна по ссылке https://serv1c.domain.ru/orgbuh
И можно безопасно пользоваться ей через Интернет.
Возможно эта ссылка будет полезна.
Проверяем подключение через Администрирование 1С Серверов.
На этом шаге мы можем установить свою базу через 1С Предприятие. Настройки будут выглядеть так:
Пароль указываем, который задали при создании пользователя в базе postgres.
ВАЖНО: имя сервера serv1c, выбранное в нашем случае, должно быть прописано в DNS, иначе мы будем везде получать сообщение об ошибке, что сервер serv1c не найден. Для удобства и меньшей путаницы, самому серверу ubuntu лучше дать то же имя.
Четвертый ШАГ.
Встраивание WEB-сервера в APACHE.Если ещё не устанавливали APACHE сервер:
# apt install apache2
Допустим мы решили нашу базу назвать orgbuh.
# cd /opt/1cv8/x86_64/8.3.21.1302
# ./webinst -apache24 -wsdir orgbuh -dir '/orgbuh' -connstr 'Srvr="serv1c";Ref="orgbuh";' -confPath /etc/apache2/apache2.conf
Перезапустим apache:
# service apache2 restart
Можно проверять. Сервер будет доступен по адресу:
http://serv1c/orgbuh
Пятый ШАГ.
Делаем сайт доступным по HTTPS.Для этого будем использовать бесплатные сертификаты. Правда их нужно продлять каждые 3 месяца.
Установим CERTBOT:
# apt install certbot
И модуль для Apache:
# apt install python3-certbot-apache
Получаем сертификат и настраиваем Apache (всё одной командой):
# certbot run -a webroot -i apache -w /var/www/html -d serv1c.domain.ru
!!! serv1c.domain.ru по порту 443 должен быть переадресован на наш сервер из Интернета, чтобы certbot смог завершить свою установку корректно.
Если всё сделали правильно, то Ваша база будет доступна по ссылке https://serv1c.domain.ru/orgbuh
И можно безопасно пользоваться ей через Интернет.
Возможно эта ссылка будет полезна.
Оптимизация производительности PostgreSQL
Ниже перечислены основные параметры, на которые следует обратить внимание при оптимизации производительности PostgreSQL.
shared_buffers
Объём совместно используемой памяти, выделяемой PostgreSQL для кэширования данных, определяется числом страниц (shared_buffers) по 8 килобайт каждая. Следует учитывать, что операционная система сама кеширует данные, поэтому нет необходимости отводить под кэш всю наличную оперативную память. Размер shared_buffers зависит от многих факторов, для начала можно принять следующие значения:
-
8–16 Мб – Обычный настольный компьютер с 512 Мб и небольшой базой данных
-
80–160 Мб – Небольшой > сервер, предназначенный для обслуживания базы данных с объёмом оперативной памяти 1 Гб и базой данных около 10 Гб.
-
400 Мб – Сервер с несколькими процессорами, с объёмом памяти в 8 Гб и базой данных занимающей свыше 100 Гб обслуживающий несколько сотен активных соединений одновременно .
work_mem
Под каждый запрос выделяется ограниченный объём памяти для работы. Этот объём используется для сортировки, объединения и других подобных операций. При превышении этого объёма сервер начинает использовать временные файлы на диске, что может существенно снизить производительность. Оценить необходимое значение для work_mem можно разделив объём доступной памяти (физическая память минус объём занятый под другие программы и под совместно используемые страницы shared_buffers) на максимальное число одновременно используемых активных соединений.
maintenance_work_mem
Эта память используется для выполнения операций по сбору статистики (ANALYZE), сборке мусора (VACUUM), создания индексов (CREATE INDEX) и добавления внешних ключей. Размер выделяемой под эти операции памяти должен быть сравним с физическим размером самого большого индекса на диске.
effective_cache_size
PostgreSQL в своих планах опирается на кэширование файлов, осуществляемое операционной системой. Этот параметр соответствует максимальному размеру объекта, который может поместиться в системный кэш. Это значение используется только для оценки. effective_cache_size можно установить в 1/2 - 2/3 от объёма имеющейся в наличии оперативной памяти, если вся она отдана в распоряжение PostgreSQL.
Следующие параметры могут существенно увеличить производительность работы PostgreSQL. Однако их рекомендуется использовать только если имеются надежные ИБП и программное обеспечение, завершающее работу системы при низком заряде батарей.
fsync
Данный параметр отвечает за сброс данных из кэша на диск при завершении транзакций. Если установить его значение fsync=off то данные не будут записываться на дисковые накопители сразу после завершения операций. Это может существенно повысить скорость операций insert и update, но есть риск повредить базу, если произойдет сбой (неожиданное отключение питания, сбой ОС, сбой дисковой подсистемы).
synchronous_commit
Включает/выключает синхронную запись в лог файлы после каждой транзакции. Это защищает от возможной потери данных. Но это накладывает ограничение на пропускную способность сервера.
Если вашей системе не критична потенциально низкая возможность потери небольшого количества изменений при крахе системы, но необходимо обеспечить в несколько раз большую производительность по количеству транзакций в секунду. В этом случае можно установить этот параметр в off (отключение синхронной записи).