Home » 1C » Публикация баз 1С на веб сервере с https и защитой

Публикация баз 1С на веб сервере с https и защитой

Сегодня расскажу про удобную и эффективную схему работы с базами 1С для малого бизнеса. Я настрою публикацию файловых баз 1С через веб сервер с использованием https и защитой доступа дополнительным паролем. Тут не будет каких-то особенных откровений или филигранных решений. Просто расскажу, как я обычно это все настраиваю в комплексе со всем остальным.

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти .

Введение

Допустим, у вас небольшой рабочий коллектив и вам нужно работать с базами 1С. Одновременно там будет работать 2-3 человека, редко 5. В общем, в этих пределах. Вам надо купить как минимум 5 софтовых лицензий для сотрудников. Но куда их ставить, если у каждого сотрудника свой компьютер, а сервер терминалов поднимать не было в ваших планах. Во-первых, он денег стоит, во-вторых, его надо настраивать, обслуживать, защищать от угроз извне, если доступ будет по rdp. В общем, на маленьких масштабах это пушкой по воробьям. Чего уж говорить о клиент серверной установке 1С с использованием сервера баз данных mssql или postgresql. Для небольших компаний это перебор как по цене, так и функционалу. Я предлагаю решение значительно проще.

На помощь приходит публикация баз 1С на веб сервере с доступом пользователей через браузер. Лицензии ставятся на один компьютер. На него устанавливается веб сервер, публикуются базы 1С и настраивается доступ. Пользователям достаточно будет передать только ссылку для работы в базах. Это удобная схема работы, плюс в целом быстродействие файловых баз при одновременной работе нескольких пользователей будет выше. Ко всему прочему еще и пользователям на компьютер не нужно ставить платформу и обновлять ее.

Схема установки

Я предлагаю следующую схему работы с базами 1С при их публикации. Доступ нужен будет отовсюду через интернет. Для этого арендуется выделенный сервер, например в selectel. Достаточно будет сервера примерно за 4000р. с 2 ssd дисками и 32g оперативной памяти. Туда ставится гипервизор proxmox. И настраиваются минимум 3 виртуальные машины:

  1. Любая windows система, где работает 1С. Если для подстраховки нужен терминальный доступ по rdp, то ставится windows server.
  2. Linux система, где будет работать nginx в качестве revers proxy. На ней будет настроен https с валидным сертификатом и при необходимости парольная защита.
  3. Любая система по вашему вкусу для бэкапов баз 1С. Они нужны будут для защиты основной виртуалки от шифровальщиков и прочей вирусни, которая может повредить базы данных. Смысл этой виртуалки в том, что тут бэкапы будут изолированы с ограниченным доступом. На этой же виртуалке настраивается передача этих бэкапов куда-то еще. Не должно быть так, что все архивные копии хранятся на одном физическом сервере у одного хостера.

Это минимальный набор виртуалок. Сюда же можно добавить мониторинг либо еще какой-то сервис, необходимый вашей компании. Например чат или ip телефония. Производительности дедика хватит для небольшой компании.

Публикация баз 1С на веб сервере

Идем на виртуалку с windows и работаем там с 1С. Для начала устанавливаем технологическую платформу и не забываем выбрать Модули расширения веб-сервера.

Публикация баз 1С на веб сервере

Создаем там необходимую вам базу данных. Я покажу на примере публикации типовой базы Бухгалтерия 3.0. При первом запуске необходимо будет установить на этот компьютер софтовые лицензии. Они будут использоваться при доступе к базам через браузер.

Настройка софтовой лицензии 1С для файловой базы

Установка и настройка Apache 2.4 в Windows

Теперь устанавливаем apache 2.4. С ним опубликовать базы 1С проще и быстрее, чем с iis. Качаем apache отсюда - https://www.apachelounge.com/download/

Скачать apache 2.4 для Windows

Если у вас не установлен Visual C++ Redistributable for Visual Studio 2015-2019, то скачайте дистрибутивы там же. Бинарники apache скачали, теперь распакуем их в папку C:/apache24/. Затем идем в конфигурационный файл apache C:\Apache24\conf\httpd.conf, открываем его блокнотом и изменяем там несколько параметров:

ServerName localhost:80
ErrorLog "|C:/apache24/bin/rotatelogs.exe -l C:/apache24/logs/errorlog.%Y-%m-%d.log 2592000"

Последняя строка это автоматическая ротация логов. Рекомендую ее сразу настроить, а не откладывать на потом. Если у вас по какой-то причине нет возможности использовать стандартный порт 80, потому что он занят кем-то другим, то можно использовать любой другой, например 81. Я всегда так и делал раньше. Но с недавних пор это стало приводить к ошибке, так как после публикации баз 1c через reverse proxy с https, стали вылезать ссылки вида https://1c.server.ru:81. Подобные ссылки невозможно открыть. Это приводит к ошибкам в работе некоторых разделов базы, где эти ссылки вылезают. Подробнее этот момент я рассмотрю ниже, в разделе с возможными ошибками.

Если вы настраиваете apache на Windows Server, то скорее всего 80-й порт у вас будет занимать Служба веб-публикаций (World Wide Web Publushing Service) или W3SVC. Ее можно остановить и отключить.

Остановка службы веб-публикаций (World Wide Web Publushing Service) или W3SVC

Для того, чтобы точно узнать, кто занимает тот или иной порт в Windows, можно воспользоваться командой в консоли:

netstat -ao

Кто занимает порт в windows

Дальше через диспетчер задач смотрите, какой процесс имеет указанный pid. В моем случае это apache. Если это какой-то системный процесс, у него будет pid 4.

Итак, конфиг apache отредактировали, порт 80 указали. Теперь установим apache 2.4 как службу windows. Для этого открываем командную строку от администратора (это важно), переходим в каталог C:\Apache24\bin и выполняем:

httpd.exe -k install

Установка apache 2.4 в Windows

Вы можете увидеть ошибку, связанную с отсутствием fqdn имени у сервера. Но реально это не представляет проблемы, можно игнорировать.

Errors reported here must be corrected before the service can be started.
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::955f:6a46:c404:c1f7. Set the 'ServerName' directive globally to suppress this message.

Переходим в оснастку windows Службы и запускаем Apache2.4.

Запуск apache как служба

Убедимся, что веб сервер нормально работает. Для этого в браузере достаточно открыть страницу http://localhost.

Проверка работы apache в windows

Вы должны увидеть сообщение It works! Если видите, то все в порядке.

Дальше выполняем непосредственно публикацию базы 1С через web сервер apache. Открываем базу через Конфигуратор, выбираем Администрирование -> Публикация на веб-сервере. В качестве каталога можно указать тот же, где лежит сам файл с базой.

Настройка публикация базы 1С через apache

Все настройки можно оставлять дефолтными. Сохраняем изменения. После этого должен быть выполнен перезапуск службы apache автоматически. Но если платформа была запущена не от администратора, то у нее не хватит прав это сделать. Надо сходить в Службы и перезапустить вручную.

После этого можно зайти в браузере по адресу http://localhost/buh3 и увидеть локальную файловую базу, которую мы только что опубликовали.

Работа файловой базы 1С через браузер

Теперь с ней можно работать через браузер, но пока только с этого компьютера, либо по локальной сети. Далее сделаем так, чтобы доступ был и через интернет.

Доступ к файловой базе 1с через интернет в браузере

Теперь перемещаемся на виртуальную машину с nginx. Предварительно не забудьте добавить dns запись в каком-то домене, по которой вы будете ходить в базу через интернет. Она нам нужна, чтобы выпустить бесплатный tls сертификат, чтобы ходить в базу по https. Я не буду привязываться к какой-то конкретной операционной системе и рассказывать, как все делать именно в ней. Систему выбирайте на свой вкус. Настройка будет одинаковой. Нам нужны будут в системе 2 пакета: nginx и certbot. Установите их:

# yum install nginx certbot

или

# apt install nginx certbot

На данную виртуальную машину должны быть проброшены 80 и 443 порты с внешнего ip адреса. Как это будет сделано, зависит от ваших сетевых настроек. В случае с proxmox я настраиваю подобный проброс с самого хоста с помощью iptables. Пример настройки iptables читайте в отдельной статье. Там есть и про проброс. Не буду на этом задерживаться в статье про 1С.

Теперь нам нужно получить сертификат. Для этого запускайте в консоли certbot и следуйте инструкциям. Перед этим остановите nginx. Для быстрого получения сертификата certbot предлагает временно запустить свой веб сервер на 80-м порту.

# systemctl stop nginx
# certbot certonly

Подробно получение сертификата let's encrypt с помощью certbot я рассматриваю в статье про настройку web сервера nginx. Результатом работы certbot должны быть tls сертификаты в директории /etc/letsencrypt/live. Используем их в настройке виртуального хоста nginx для публикации баз 1С. Создаем в директории /etc/nginx/conf.d/ конфиг 1c.site.ru.conf примерно следующего содержания. Взял его с рабочего сервера.

server {
    listen 443 ssl http2;
    server_name 1c.site.ru;
    access_log /var/log/nginx/1c-access.log;
    error_log /var/log/nginx/1c-error.log;

    ssl_certificate /etc/letsencrypt/live/1c.site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/1c.site.ru/privkey.pem;

    location /.well-known/acme-challenge/ {
    root /tmp;
    }

    location / {
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.1c;
    proxy_pass http://10.10.10.11:80;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    }
}

server {
    listen 80;
    server_name 1c.site.ru;
    return 301 https://1c.site.ru$request_uri;
}

В данном случае 10.10.10.11 - локальный ip адрес виртуальной машины с windows, где опубликована база 1С через apache. Доступ к 1С сразу же закрыт отдельным паролем и механизмом веб сервера auth basic. Создадим файл с именем пользователя и паролем, указанным в конфиге.

# htpasswd -c /etc/nginx/htpasswd.1c user1c

Если у вас нет в системе утилиты htpasswd, то установите пакет httpd-tools. Она из него. user1c - имя пользователя. Пароль вам предложат задать в консоли.

Теперь можно запускать nginx и проверять доступ к базе 1с по https с дополнительной авторизацией. Так как в конфиге nginx настроен proxy_pass всех запросов через location / , то на самой виртуалке с 1С вы можете публиковать сколько угодно баз через алиасы, например /buh3, /zup3 и т.д. Все они будут автоматом направляться с nginx на apache. При этом на самом nginx конфигурацию менять не придется.

Защита доступа к базе 1С через интернет дополнительным паролем

Работа в базе 1С через браузер по https

Вот и все. Можно относительно безопасно выставлять такую конструкцию в интернет. В случае необходимости можно настроить fail2ban, если кто-то надумает перебирать пароли или просто выполнять непонятные запросы к веб серверу с опубликованными базами. При желании в том же nginx с помощью директив allow и deny можно ограничить доступ к виртуальному хосту с базами на уровне ip адресов. Это на случай, если не умеете делать то же самое на фаерволе. В nginx проще и быстрее.

Не забудьте настроить автоматическое обновление tls сертификатов. Как это сделать, я рассказываю в статье с настройкой web сервера. Ссылку на нее я дал выше.

Какие бывают проблемы с работой в 1С через браузер

В таком режиме у меня уже пару лет работают несколько серверов с 1С. Иногда возникают нюансы с доступом через браузер. Например, не настроить обмен между базами, не зная их локальных путей. Бухгалтера сами его не смогут настроить. Им нужно будет передать информацию по директориям с базами. Понятное дело, что и обновить платформу они сами не смогут, так как нужно будет обновлять и публикацию баз. Когда вы сами подключены через браузер, сделать это невозможно.

Так что некоторые вещи, которые обычно бухгалтера в небольших компаниях способны сделать сами, придется делать тому, кто обслуживает этот сервер. Но бонусом идет то, что на самих пользовательских компьютерах ничего настраивать не надо. Вы просто передаете пользователю адрес в интернете и учетные данные. И он начинает работать в базе 1с. Платформу ставить не надо, как и решать вопрос с лицензиями на клиентах.

Еще один нюанс, связанный с обменом между базами. После обновления платформы на сервере, он перестает работать через браузер. Возникает ошибка доступа к COM объекту. Чтобы это исправить, надо выполнить на сервере регистрацию comcntr.dll примерно так.

regsvr32 "C:\Program Files\1cv8\8.3.18.1208\bin\comcntr.dll"

Сделать это надо в cmd с правами администратора. И повторять каждый раз при обновлении платформы, не забывая указать путь к новой версии файла.

С недавних пор я столкнулся с новой для меня ошибкой при подобной публикации баз с использованием nginx и proxy_pass. Раньше я использовал отличный от 80-го порт в apache. Но периодически стали проскакивать ссылки при работе с опубликованной базой 1с примерно такого вида - https://1c.site.ru:81/ в случае, если вы используете 81-й порт. Запросы извне по этой ссылке уходят в никуда и возникают ошибки. На стороне клиента они выглядят так:

Uncaught TypeError: Cannot read property 'toUpperCase'

Uncaught TypeError: Cannot read property 'toUpperCase' of undefined on https://......./mod_main_loader.js

Ошибка совершенно не гуглится, так что потратил много времени на ее решение. Помог режим отладки в chrome. Я просто проверил все запросы и нашел ошибочные с кривыми урлами. И так и сяк пытался их решить редиректами на веб серверах, но в итоге пришлось в apache переехать на 80-й порт и ошибка ушла.

Ну и еще одно отмечу. Иногда apache зависает или начинает сильно тупить. Обычно после долгого аптайма в несколько недель. Я подробно не разбирался в проблеме. Предпочел просто перезапускать его раз в сутки ночью. Для этого сделал обычный bat файл и настроил запуск через планировщик Windows.

@echo off
sc stop "Apache2.4"
timeout 90
sc start "Apache2.4"

Понятно, что это грубый костыль, но проблему решает. Ночью все равно с 1С никто не работает. Это история не про отказоустойчивость, резервирование и работу 7/24/365.

Подключение через Платформу 1С:Предприятие к базе 1С, опубликованной в веб

Упомяну одну важную вещь, про которую я сам узнал не сразу. С опубликованной в web базой 1С не обязательно работать через браузер. Можно подключиться через обычную платформу, если она у вас установлена на компьютере. Причем все отлично заработает даже с дополнительной basic auth в виде еще одной авторизации.

Чтобы добавить такую базу в платформу, достаточно указать, что тип расположения информационной базы - веб-сервер.

Подключение к базе 1С через интернет с помощью платформы

При подключении к такой базе вам сначала нужно будет ввести пароль на доступ к веб сайту, а потом уже появится авторизация самой 1С. Удобно выходит. И субъективно кажется, что через платформу 1С работать с опубликованной базой немного быстрее. Быстрее отклик на действия пользователя.

Бэкап баз 1С

Для полноты картины расскажу, как легко и быстро забэкапить файловые базы 1С. Пошаговую инструкцию не буду писать, так как у всех свои ситуации и каждый делает по-своему. Я на словах расскажу, как можно поступить с архивными копиями. Сам я каждый раз придумываю разные решения для бэкапов 1С в зависимости от обстоятельств.

Для меня важно держать где-то недалеко от рабочего сервера несколько архивных копий баз, чтобы их можно было оперативно загрузить на сервер и работать с ними. Для этого у меня на этом же гипервизоре отдельная виртуальная машина исключительно для бэкапов. Доступ к ней максимально ограничен. Она сама забирает все бэкапы к себе. С windows машины к ней доступа нет. Сделано это для простейшей защиты от шифровальщиков. Если какой-то вирус попадет на сервер и зашифрует базы 1С, я очень быстро смогу их восстановить из архивных копий, которые хранятся на этом же гипервизоре, только в другой виртуальной машине.

На windows сервере можно просто расшарить директорию с базами 1С, а на виртуалке для бэкапов подключить ее. Я обычно использую Linux систему для этого. В ней монтирую шару по smb. Как это сделать рассказываю в отдельной статье - Как быстро подмонтировать сетевой диск в Linux. После того, как подключили папку с базами 1С к бэкап серверу, можете делать с ними все, что угодно. Например, куда-то копировать с помощью rsync и сохранять изменившиеся базы. Подробно схему бэкапов с помощью rsync описываю тоже отдельно - настройка rsync для бэкапа. Обязательно одну копию держу локально на сервере с бэкапами, вторую отправляю куда-то в удаленный приемник. После этого шару отмонтирую. Она подключена только для копирования баз с windows машины на linux.

Так же для бэкапов вы можете использовать какое-нибудь S3 хранилище, например у того же Selectel. По моим недавним сравнениям по ценам там наиболее выгодные условия из известных хостеров. По крайней мере я дешевле не нашел. Заливать бэкапы в S3 можно с помощью утилиты rclone. У Selectel еще очень удобно сделано в плане настройки времени хранения данных в контейнерах. Я обычно создаю 3 разных контейнера:

  1. Day - в него заливаются архивы каждый день. Срок хранения файлов в этом контейнере - 7 дней. Настраивается это штатно в панели управления. На стороне хоста, с которого заливаются данные, ничего делать не надо.
  2. Week - архивы заливаются раз в неделю и хранятся 31 день.
  3. Month - архивы заливаются раз в месяц и хранятся условно бесконечно.

Таким образом мы просто каждый день льем файлы в S3 в разные контейнеры, а там они автоматом ротируются. Мы всегда имеем 7 последних копий, 4 недельные и помесячные. Удобная схема и не очень дорогая. Стоимость хранения можете сами прикинуть по калькулятору хранилища.

Еще один вариант бэкапа - копировать базы по nfs на какой-то сервер. В общем, тут вариантов может быть очень много. Я для этого и использую такую схему - подключение директории с базами к linux серверу, а там уже возможности по работе с бэкапами безграничные. Можно на тот же Яндекс.Диск их передавать. Вот тоже статья по этому поводу - бэкап на яндекс диск. Правда там речь идет про сайт, но принципиальной разницы нет.

Заключение

Это все, что я хотел рассказать по поводу публикации файловых баз 1С в интернет. Постарался дать не только технические данные но и свои личные подробности, основанные на опыте подобных эксплуатаций. Я хоть и пытаюсь дистанцироваться от 1С, но она настолько популярна в России, что так или иначе сталкиваешься с этим продуктом. Да я и свою бухгалтерию ИП сам веду в 1С :)

Если захотите себе настроить что-то подобное, то обращайтесь ко мне. Я могу подобрать подходящее решение под ваш бюджет и выполнить настройку. Это будет дешевле быстрее и скорее всего лучше, чем вам настроят через франчайзи. По крайней мере то, что я видел, чаще всего было настроено так себе. Без акцента на безопасность и удобство, лишь бы работало.

Онлайн курс по Kubernetes

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

Если вы ответите "да" хотя бы на один вопрос, то это ваш курс:
  • устали тратить время на автоматизацию?
  • хотите единообразные окружения?;
  • хотите развиваться и использовать современные инструменты?
  • небезразлична надежность инфраструктуры?
  • приходится масштабировать инфраструктуру под растущие потребности бизнеса?
  • хотите освободить продуктовые команды от части задач администрирования и автоматизации и сфокусировать их на развитии продукта?
Сдавайте вступительный тест по и присоединяйтесь к новому набору!.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

43 комментария

  1. Аватар

    Добрый день. А как же публикация аппаратных ключей для отчётности? Без них бухгалтера работать не смогут.
    Технически схема красивая, в реальности - очень вряд ли. Сейчас экономят на всём, проще поставить сервер у себя и настроить доступ - за последнее время несколько раз такое делал.

    • Zerox

      Не понял, при чем тут аппаратные ключи и отчетность? Если нет возможности использовать usb ключи, лицензии покупаются программные. Где и какой сервер арендовать, каждый выбирает для себя сам исходя из своих возможностей и желаний. Это не принципиально в контексте данной статьи.

  2. Аватар
    Сергей

    Добрый день
    как Вы думаете если кол-во пользователей 1с около 100 лучше Apache или все такие IIS ? И стоит ли при этом выделять для web сервера отдельную виртуалку или можно совместить все с сервером 1с ?

    • Zerox

      Я нигде не видел сравнение производительности веб серверов при таком режиме работы. Мне кажется, что узким местом тут будет не веб сервер, так что не принципиально. Это мое предположение. Вы 100 человек хотите к файловой базе подключить?

      Я бы сначала все сделал на одном сервере и понаблюдал. Не факт, что вынесение веб сервера на отдельную виртуалку увеличит производительность. Тут надо тестировать. Скорость может наоборот упасть. Не знаю точно, как веб сервер взаимодействует с 1С и сколько только он требует ресурсов. Мое предположение, что в разы меньше, чем сама 1С.

  3. Аватар

    VPN + шустрый ПК сервер + бекап в облако - в разы дешевле и проще описанной выше схемы.

    • Zerox

      А ПК вы куда поставите? В статье тоже все настроено на ПК, только арендованном. И vpn нет, так что не понятно, почему это будет проще. Без vpn как раз проще. Не надо пользователям голову забивать настройкой vpn.

      • Аватар

        ПК с базой где удобно там и стоит, VPN клиент/сервер сейчас настраивается почти на любом микротике за пару кликов, даже не имея белого IP. Доступ внутри VPN жестко ограничевается фаерволом того же роутера.
        При такой схеме не будет описанной вами проблемы: "Если какой-то вирус попадет на сервер и зашифрует базы 1С" т.к. база не смотрит в интернет :)

        • Zerox

          Вы пишите, что так проще, но лично я вижу, что так сложнее, в том числе и для конечного пользователя. Ваша схема имеет право на жизнь. У нее как свои плюсы, так и минусы. Нет смысла обсуждать, что лучше, поставить сервер у себя дома за 3 копейки, или в ЦОД. Отключение электричества или интернета дома, а так же поломка компа разрешит этот спор сама.

          Тот же vpn можно настроить на виртуалке c nginx и тоже полностью скрыть базу из интернета. Но в описанной задаче, которую решал в статье, я не ставил такой цели. Наоборот, хотелось сделать безопасно без использования vpn, чтобы упростить обслуживание.

          • Аватар

            Цена решения - основной фактор для 90% мелко-средних компаний!
            Сервер в офисе, если отключат свет, то работа офиса встанет полностью. Для "удаленных" сотрудников ИБП решит проблему. В нормальных офисах интернет имеет резервный канал, 4G в роутер на край.
            Поломка ПК работающего 24/7/365 явление крайне редкое, но если случилось в офисе имеется второй ПК с настроенным апачем, и РИБом основной базы 1С.
            И как показывает моя практика в ЦОДах простои в прошлом году случались гораздо чаще )))
            Напишите статью о "бюджетных" решениях! Думаю лишним не будет.

            • Zerox

              Я постоянно работаю с арендованным железом. Этот рынок растет год от года. Компании отказываются от своего оборудования в пользу арендованного. Можно долго спорить о целесообразности этих действий, но факт в том, что динамика рынка именно в эту сторону - переход к тем или иным хостерам. Я сам работаю в сфере малого и среднего бизнеса и у меня большинство оборудования арендовано в цодах. Статистически вероятность простоя там в разы меньше.

              • Аватар

                Да я так же работаю в мелко-среднем бизнесе и с прошлого года у меня наблюдается обратная тенденция. Тут наверное от региона зависит, в Москве и Питере рост есть, а вот в остальных регионах все не так радужно.
                У более менее средних компаний затишье, у мелких спад и срезание бюджетов.

  4. Аватар

    Кстати, ошибка "Uncaught TypeError: Cannot read property 'toUpperCase' of undefined on https://......./mod_main_loader.js" не имеет место быть при подключении к базе через платформу.

    • Zerox

      Да, все верно. Она возникает из-за особенностей работы браузеров. Более того, она и возникала то только в хроме. Но тем не менее, кривые ссылки никуда не деваются, а ошибка их следствие. В других местах эти ошибки просто игнорируются, а хром вываливает такую ошибку.

  5. Аватар

    Известно, что файловая база гораздо быстрей серверной, если пользователей немного. А сервер укатает файловую при большом количестве пользователей. В этом варианте получается как бы и серверная (веб-сервер) и файловая. Только вместо MSSQL или PostgreSQL используется файловая база от 1С. Сколько пользователей, судя по Вашему опыту выдержит такая база, прежде чем начнет тормозить. Вернее сколько пользователей выдержит веб-сервер ? Ясно, что это зависит от производительности сервера. Например сколько пользователей держит сервер который Вы описали. Где по Вашему граница перехода на настоящий сервер ? У меня 30 пользователей легко работали в терминале, но дальше начались тормоза.

    • Zerox

      "Известно, что файловая база гораздо быстрей серверной, если пользователей немного."
      Мне такое не известно. Это откуда информация? Есть тесты? По моим наблюдениям, если в базе работает одновременно более 5-ти человек, надо переходить с файловой. Но все, конечно, же, зависит от характера работы и активности в базе.

      • Аватар

        Я имел ввиду тест Гилева. В нем файловый и серверный вариант - две большие разницы. Но это не показатель, все зависит от реальной нагрузки. А тесты я проводил. Файловый вариант быстрее при определенных условиях - небольшая база (не десятки Gb) и 2-3 пользователя. Жаль результаты не сохранил. Вы подтвердили и мое мнение, это вариант для небольших компаний, 5, максимум 10 пользователей. Спасибо за ваш труд. Регулярно читаю ваши статьи.

        • Zerox

          Если не брать web доступ, то даже от 2-3 человек, работающих в файловой базе, подключенной по сети, начинаются очень сильные тормоза. Web версия ускоряет подобный режим работы, то есть по сети, но через браузер, эти же 2-3 человека могут работать более комфортно. Но, к примеру, если 1 человек работает одновременно с базой, то обычное прямое подключение будет быстрее, чем через web. При нескольких пользователей web последовательно выполняет запросы к базе и из-за этого совместная работа комфортней. При этом в любом случае, с файловой базой даже 10 человек это перебор. Работать будет медленно. Нужно на серверный вариант переходить.

  6. Аватар
    Александр

    у меня на такой схеме (публикация через вебсервер) не взлетают внешние обработки.. что там нужно с ними делать я не понимаю).

    • Zerox

      Я тоже не знаю, но и не сталкивался с этим. Не беру на поддержку нетиповые базы вообще. Не хочу погружаться в тему 1С. Это отдельное направление. Мне нравится только инфраструктуру настраивать.

  7. Аватар

    Как Вы делаете backup ? Можно поподробней - копируете *.cd или выгружаете в *.dt ? Сами скрипты меня не интересуют, важен сам принцип.

    • Zerox

      Я копирую *.cd. На моей памяти ни разу с этим проблем не испытывал, даже если люди в базе сидят, а ты копируешь файл. С выгрузкой в *.dt очень много нюансов и только на нее нельзя полагаться. Идеально так:
      1. Копия файла с базой.
      2. Выгрузка dt.
      3. Регулярный тест базы на ошибки.
      Все это не сложно реализуется через bat файлы в windows.

  8. Аватар
    Евгений

    Владимир, а как вы в такой конфигурации управляете proxmox? Ставите на хосте vpn или выставляете его веб-интерфейс в интернет? Статья понятная и, безусловно, полезная, но я почти уверен, что заказать у того же selectel одну виртуалку с виндой и пару виртуалок с линукос было бы и проще и дешевле, чем городить огород со своим гипервизором и полноценным выделенным сервером.

    • Zerox

      Заказать готовые виртуалки однозначно проще, тут и обсуждать нечего. Я даже статью с обзором хостера делал, где ты то же самое получаешь в один клик. Просто заказываешь в личном кабинете виртуалку и базу 1С и получаешь доступ по rdp или через браузер - https://serveradmin.ru/obzor-oblachnogo-hostinga-serverspace/#Dostup_cerez_brauzer

      Покупая дедик, получаешь ряд преимуществ:
      1. Это дешевле за те же вычислительные ресурсы. Причем значительно дешевле, в 2-3 раза. Уточняю, что речь именно про ресурсы. Надо понимать, что настраивать и поддерживать дедик тоже денег стоит. Но на круг все равно дешевле выйдет.
      2. Гарантированная производительность. В обычной виртуалке ты ее никогда не получишь. Она может работать то быстрее, то медленнее. Невозможно прогнозировать.

      Proxmox обычно управляю напрямую через браузер через внешний ip адрес. На самом гипервизоре настраиваю iptables и настраиваю ограничение по ip адресам для ssh и web интерфейса proxmox. Через этот iptables настраивается и проброс портов в виртуалки. Это самый простой случай.

      Если посложнее, то берется виртуалка, настраивается как шлюз для виртуальных машин и самого гипервизора. А дальше на этом шлюзе уже все делается под задачи. Может быть vpn настроен для пользователей, а может и для объединения в единую сеть с другими гипервизорами.

      • Аватар

        У Proxmox собственный ТРЕХУРОВНЕВЫЙ firewall (datacenter, host, vm),к-ый настраивается прямо в вебке.
        Даже в ком строку лезть не надо и рукми крутить iptables.

  9. Аватар
    Виктор

    А есть опыт публикации бд на линуксе ? допустим связка centos7 nginx и там публикация, быстрее будет работать если сравнивать с виндой?

    • Zerox

      Чтобы опубликовать файловую базу, нужна платформа 1с. Для ее установки надо gui на linux. Я не знаю, работает ли там публикация базы. Всегда винду использую. Так просто проще. В линуксе потом грабли собирать придется.

      • Аватар

        Не нужно GUI, достаточно пакетов 1С под Linux common, ws, и server (server нужен чисто для зависмости, демон при этом запускать не надо). Затем публиковать БД примерно так /opt/1cv8/x86_64/8.3.18.1208/webinst -publish -apache24 -wsdir SmallBusinessDemo2 -dir /var/www/SmallBusinessDemo2/ -connstr "File=""/opt/1CBases/SmallBusinessDemo2/"";" -confpath /etc/httpd/conf.d/1cbases.conf.
        Можно еще так сделать - поставить только пакет ws и написать скрипт, который будет формировать 2 файла - conf и vrd, затем перезапускать веб-сервер.

        Так же я на selinux не даст нормально работать - нужно либо его настроить, либо отключить.

        • Zerox

          Интересно, не знал об этом. Вы пробовали такой режим работы? Я не пробую и не ставлю 1С на Linux, чтобы не усложнять лишний раз конфигурацию. Потом трудно будет передавать все это кому-то другому. Возрастает конечная стоимость поддержки для заказчика. Сервер под виндой можно любому эникею передать в обслуживание и все.

          • Аватар

            Да, пробовал, работает, собственно пример команды для публикации выдернул из своей инструкции. Но как вы верно заметили, входной порог возрастает и любому эникею это уже не передать )

          • Аватар

            Кстати )) справедливости ради замечу, что proxmos передать любому эникею тоже не получится ))

            • Zerox

              Почему? Там как раз все просто. Управление через браузер. В общем случае его достаточно.

              • Аватар

                Ну я бы побоялся )) Одно дело кнопочки нажимать в Windows, другое дело понимать, как работает гипервизор. Но это мое имхо как говорится )

                • Zerox

                  Да не, бояться нечего. Я бы как раз рекомендовал proxmox для новичков. Там реально полностью достаточно web интерфейса для простых задач. Тот же hyperv позамороченнее настраивать и разбираться с ним.

  10. Аватар

    Интересен вопрос Windows-авторизации в веб-клиенте, ее каким образом и протоколами можно орагнизовать?
    При публикации сталкивались с проблемами неработающего протокола Kerberos для 1С (по журналу видно, что 1С не удалется распознать логин пользователя)

    • Zerox

      Я не прорабатывал этот момент. С доменом тема не простая, особенно для удаленного доступа.

    • Аватар

      Если использовать данное решение для работы внутри сети, то лучше всего это работает в связке 1C+IIS, так как включение доменной авторизации по сводится к настройке доменной учетной записи внутри 1С для конкретного пользователя и добавлением Wndows Authentication в настройках IIS.

      • Аватар

        Вы правы, внутри сети в такой связке работает отлично

        Для публикации пока работает только авторизация по 1С

  11. Аватар

    А на ваш взгляд, какой веб сервер апач или ииса?

    • Аватар

      Имею ввиду лучше)

    • Zerox

      Что лучше, не знаю. Это субъективно. Тут веб сервер в интернет не смотрит, поэтому не принципиально. Я на 100% предпочитаю больше apache, так как его настраивать проще и быстрее. Все настройки в одном конфиге, при этом он такой же, как и на linux, где я с апачем постоянно работают. У меня даже не стоит такой вопрос.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.