Модули расширения для веб-сервера Apache. Установка модулей расширения Web-сервера Не установлены модули расширения

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

Основные требования

Минимальные системные требования к серверной части архитектуры могут значительно различаться и сильно зависят от:

  1. Задач, решаемых программой;
  2. Интенсивности документооборота;
  3. Количества единовременно подключенных пользователей;
  4. Размера и количества опубликованных и прописанных баз данных.

Однако без двух вещей при публикации 1С на веб-сервере обойтись просто невозможно:

  • Развернутого в системе веб-сервера;
  • Установленного и запущенного модуля расширения, поставляемого фирмой 1С.

Веб-сервер

В качестве этого элемента нашей структуры может выступать как Internet Information Server (IIS), поставляемый в составе операционных систем от фирмы Microsoft, так и Apache сервер. Конечно, есть и платные аналоги этих решений, но про них мы разговор вести не будем.

Дополнительным плюсом продуктов Apache является возможность их запуска из Linux подобных операционных систем.

Мы рассмотрим вариант с IIS, т.к. он не требует поисков и установки продуктов сторонних производителей.

Модули расширения веб-сервера

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

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

Определившись с инструментарием, перейдем к настройке.

Установка и запуск Web-сервера

Для того, чтобы запустить IIS на компьютере с установленной Windows, необходимо произвести следующую последовательность действий (на примере Windows 7):


Рис.3

Удостовериться в том, что веб-сервер заработал, можно забив в адресной строке любого браузера строку вида «http://localhost» и получив картинку, как на Рис.4.

Рис.4


Рис.6.

В некоторых случаях (в частности, если работа программы осуществляется в среде 64 разрядной операционной система), после публикации базы на сервере, возможно придется донастраивать работы с библиотеками, используемыми платформой 1С. Это можно выполнить из подменю «Сайты».

Выбрав конкретную, только что опубликованную базу в списке, необходимо активировать утилиту «Сопоставление обработчиков» (Рис.7).
Рис.7

В нашем случае нам понадобится установить соответствие между ISAPI-dll и исполняемым файлом wsisapi.dll, находящимся в папке BIN, установленной версии платформы.

В принципе, на этом основную часть работы с сервером можно считать завершенной, переходим непосредственно к публикации базы.

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

Настройка прав пользователей

Получив вышеуказанное окно, мы переходим к настройке правил доступа для пользователей.

Нам необходимо разрешить полный доступ пользователю IIS_USERS:

  • К папке «C:\inetpub\wwwroot\Имя публикации», где хранится ресурс;
  • К папке с используемой версией программы, где хранится библиотека wsisapi.dll;
  • К месту, где хранится база.

Выполнив вышеперечисленные действия, мы можем проверить работоспособность нашей публикации, забив в окне браузера строку вида «localhoct/Имя публикации» и обнаружив там форму идентификации пользователя.

Для работы Агента 1С:Линк необходимо наличие установленных 32-битных модулей расширения Web-сервера из дистрибутива 1С:Предприятие.

Обратите внимание, что для установки модулей веб-расширения могут потребоваться права Администратора.

После установки необходимо перезапустить Агент "1С: Линк".

Сделайте следующее:

На ПК с Агентом откройте панель управления и (для Windows 7) перейдите в раздел "Программы - Программы и компоненты", как показано на картинке ниже. Для Windows XP – откройте Панель управления и в ней – "Установка и удаление программ".

Далее выберите в списке программ версию 1С:Предприятие, которое вами используется, и нажмите кнопку "Изменить". Также опцию "Изменить" можно выбрать из контекстного меню, вызываемого правым щелчком мыши на строке программы в панели управления. Это справедливо и для Windows 7 и для Windows XP.

Используемую версию платформы 1С:Предприятие можно уточнить, нажав на значок "О программе" в окне приложения 1С.

Выберите установку Модулей расширения веб-сервера, как показано на картинке ниже.

В случае, если на комьютере отсутствует дистрибутив указанной версии платформы "1С: Предприятие 8", вы можете загрузить его с сайта https://users.v8.1c.ru/distribution/

Подробная информация об установке и настройке компонентов платформы "1С: Предприятие " доступна в главе 2 р уководства а дминистратора "1С: Предприятие ".

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

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

После выполнения публикации необходимо предоставить пользователю, от лица которого запускается Apache, права на каталог исполняемых файлов (/opt/1C/v8.3/i386/ для 32-разрядной версии или /opt/1C/v8.3/x86_64/ для 64-разрядной версии) конкретной версии системы «1C:Предприятие» (чтение и выполнение). В случае файлового варианта информационной базы необходимо дать права на модификацию каталога информационной базы пользователю, от лица которого работает веб-сервер.

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

Начнем с платформы, она размещается в /opt/1C и имеет владельцем usr1cv8:grp1cv8 , такой формат записи является общеупотребительным в Linux и обозначает связку пользователь:группа . Если быть точным, то веб-серверу требуется доступ на чтение и выполнение к единственному файлу платформы - библиотеке wsap24.so (для Apache 2.4).

Гораздо интереснее с информационной базой, изначально ее владельцем является локальный пользователь user:user , который является также членом одноименной персональной группы. По умолчанию он имеет все необходимые права доступа к базе (чтение и запись). Аналогичные права также должен иметь веб-сервер, который работает от имени www-data:www-data .

Существуют способы запустить Apache от имени нужного пользователя, но на практике выяснилось, что 1С не работает с mpm-itk , даже если веб-сервер запущен от системного пользователя, практически сразу после запуска базы вы будете получать следующую ошибку: Сеанс отсутствует или удален .

Поэтому самое время вспомнить, что в Linux права устанавливаются для пользователя , группы и остальных , права по умолчанию, в зависимости от системы, несколько отличаются. За их назначение отвечает такой параметр как umask , грубо говоря, это маска, которую надо вычесть из полных прав, чтобы получить права, применяющиеся по умолчанию. В Ubuntu umask равен 002 , а в Debian 022 , следовательно, набор стандартных прав в Ubuntu/Debian будет 775/755 для папок и 664/644 для файлов.

Набор 775/664 дает права чтения/записи как владельцу, так и группе, а 755/644 - только владельцу. Таким образом в Ubuntu набор прав по умолчанию полностью подходит для наших целей, а в Debian потребуется изменить umask на 002 .

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

Установка модуля расширения веб-сервера

Будем считать, что у вас уже установлена платформа согласно нашему руководству . В таком случае нам понадобятся пакеты 1c-enterprise83-ws и 1c-enterprise83-ws-nls из поставки сервера. Обратите внимание, что версия и разрядность данных пакетов должна совпадать с версией и разрядностью установленной платформы.

Скопируем указанные пакеты в произвольную папку и установим их командой:

Dpkg -i 1c*.deb

Обратите внимание, что данная команда установит все пакеты из текущего расположения по маске 1с*, поэтому будьте внимательны и убедитесь, что в ней нет ничего лишнего.

Затем установим нужного владельца для платформы:

Chown -R usr1cv8:grp1cv8 /opt/1C

на этом установка модуля веб-сервера окончена.

Установка Apache 2.4

Начиная с платформы 8.3.8 добавлена поддержка актуальной версии Apache 2.4, теперь нет необходимости понижать версию пакета, если вы используете более раннюю версию платформы, то вам потребуется понизить Apache до версии 2.2, как это сделать описано в нашей статье .

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

Конечно, можно вручную настроить все красиво, но это потребует повышенных затрат на администрирование при добавлении новых баз, поэтому более разумным решением будет выделение для 1С собственного экземпляра Apache.

Его установка производится одной единственной командой:

Apt-get install apache2

никакой дополнительной настройки пакет не требует.

Настройка необходимых прав доступа

Если вы используете Debian , то прежде всего следует изменить umask системы на 002, для этого откройте файл /etc/pam.d/common-session и добавьте в его конец строку:

Session optional pam_umask.so umask=0002

Затем включим пользователя веб-сервера в группы 1С и текущего пользователя системы:

Usermod -a -G grp1cv8 www-data
usermod -a -G user www-data

Также включим текущего пользователя в группу веб-сервера:

Usermod -a -G www-data user

где вместо user следует использовать имя текущего пользователя.

После чего нужно установить права на папки с информационными базами, допустим они находятся в /opt/1C_bases :

Chmod -R u=rw,g=rw,o=r,a+X /opt/1C_bases

Закончив с установкой прав следует перезагрузить сервер.

Публикация информационной базы

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

Перед публикацией создадим директорию для нее в рабочем каталоге веб сервера, по умолчанию это /var/www , мы будем публиковать Бухгалтерию 3.0 поэтому назовем директорию acc30 :

Mkdir /var/www/acc30

Запустим 1С:Предприятие с повышенными правами, для этого в терминале от имени суперпользователя выполните для 32-разрядной системы:

/opt/1C/v8.3/i386/1cestart

для 64-разрядной:

/opt/1C/v8.3/x86_64 /1cestart

Откроется стандартное окно запуска 1С из которого откроем в Конфигураторе нужную нам базу. Затем перейдем в Администрирование - Публикация на веб-сервере и заполним небольшую форму:

В поле Имя указываем желаемый алиас информационной базы, его вы будете набирать в адресной строке браузера для доступа к данной базе, поэтому не следует делать его длинным или неудобочитаемым. Веб-сервер - здесь все понятно, в нашем случае Apache 2.4 и, наконец, Каталог - здесь следует указать директорию публикации, которую мы создали несколько ранее, не следует путать ее с рабочим каталогом ИБ. Если вы не используете интерфейс OData и Web-сервисы, то публиковать их не нужно.

Заполнив все необходимые поля нажмите кнопку Опубликовать , затем согласитесь с предложением перезапустить веб-сервер.

Для публикации из командной строки следует перейти в директорию с бинарными файлами 1С, в 32-разрядной системе выполните:

Cd /opt/1C/v8.3/i386/

в 64-разрядной:

Cd /opt/1C/v8.3/x86_64/

После чего запустите утилиту webinst со следующими параметрами:

./webinst -publish -apache24 -wsdir acc30 -dir /var/www/acc30/ -connstr "File=""/opt/1C_bases/acc30/"";" -confpath /etc/apache2/apache2.conf

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

  • publish - указывает необходимое действие, в данном случае публикацию, может быть опущен, так как это действие по умолчанию.
  • apache24 - задает тип веб-сервера, для Apache 2.2 следует указывать apache22.
  • wsdir - имя алиаса публикации, по которому к базе следует обращаться из браузера.
  • dir - путь публикации, созданная нами директория в рабочем каталоге веб-сервера
  • connstr - строка соединения, состоит из трех частей, каждая из которых взята в кавычки: "File=" - указывает что база файловая, "/opt/1C_bases/acc30/" - путь к каталогу ИБ, ";" - служебный символ.
  • confpath - путь к конфигурационному файлу веб-сервера.

Chown -R www-data:www-data /var/www

Теперь можем попробовать запустить базу, обратившись к ней в браузере по имени хоста или IP-адресу, добавив через слеш нужный алиас, на локальной машине можно набрать http://127.0.0.1/acc30 .

Несколько слов о производительности

По-хорошему здесь должен был быть завершающий абзац статьи с заключением и пожеланиями, но наш материал был бы неполным без темы производительности данного решения. Так как веб доступ в файловом режиме обычно используют небольшие предприятия, то в роли веб-сервера чаще всего используется обычный офисный ПК. В его роли мы использовали виртуальную машину, которой выделили два ядра от Core i5-4670 и 4 ГБ оперативной памяти, что соответствует неплохой офисной машине.

Если по процессорным или дисковым ресурсам вопросов не возникло, то вот расход оперативной памяти нас не порадовал. Ниже показана система сразу после загрузки:

Затем мы запустили два экземпляра базы (один в веб-клиенте, другой в тонком) локально и два экземпляра по сети:

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

Хорошо, закрываем все сеансы, но что это?

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

Теперь модель работы веб-сервисов соответствует FastCGI-приложению, которое запускается один раз и продолжает оставаться запущенным даже при завершении сеансов работы с ним. Процитируем разработчиков 1С:

Сеансы в пуле хранятся в разрезе типа сервиса, наименования сервиса, пользователя/пароля, значений разделителей и безопасного режима. Причём в пуле может быть несколько сеансов с одинаковыми значениями перечисленных реквизитов.

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

Сеанс автоматически завершается по истечении периода бездействия (ВремяЖизниСеанса).

Что из этого следует? А то, что если вы одновременно запустите 4 сеанса работы с веб-сервером, то по их завершении рабочие процессы Apache продолжат работу в ожидании новых подключений, а если их не будет, то по окончании времени жизни сеанса , которое по умолчанию составляет 20 минут, будут завершены.

Таким образом вам нужно иметь достаточное количество оперативной памяти для обеспечения одновременной работы максимально возможного числа одновременно подключившихся клиентов, в противном случае ваша система может катастрофически снизить производительность по причине отсутствия свободной памяти. Даже если эти подключения будут носить кратковременный характер память под них будет "зарезервирована" в течении еще 20 минут.

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

  • Теги:

Please enable JavaScript to view the Если вы уже ознакомились с вводным материалом про сервер Apache и со статьей, описывающей различия между разными версиями, установили и произвели первоначальную настройку сервера, то можно приступать к рассмотрению модульной системы Apache. Дело в том, что данный веб-сервер, по сути, состоит из одного обязательного модуля — ядра (Apache Core), выполняющего простейшие задачи сервера. Все остальные функции описываются в дополнительных модулях. В этом материале мы рассмотрим некоторые модули Apache, как часто используемые, так и малоизвестные веб-разработчикам.

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

Ядро Apache выполняет самые основные функции сервера и позволяет подключать дополнительные модули

Начать разговор о модулях нужно, разумеется, с ядра системы. Именно к нему примыкают все дополнительные модули, как зерна кедрового ореха к сердцевине. Ядро выполняет те функции, без которых Apache просто нельзя было бы назвать веб-сервером. Оно исправно принимает запросы браузеров, возвращаем им ответы в виде страниц и так далее, но самое главное — позволяет подключать к себе дополнительные модули.

В поставку сервера входит целый набор модулей, предназначенных для работы в режиме с несколькими запущенными процессами. Не секрет, что большинство существующих операционных систем позволяют работать с несколькими задачами одновременно. Благодаря этой группе модулей Apache может использовать все возможности таких систем. Кроме основного модуля mpm_common , вы сможете найти модуль, оптимизированный для каждой из наиболее популярных платформ (Windows, OS/2, BeOS, Netware и так далее).

Если вы хотите пользоваться всеми файла.htaccess, то стоит установить модуль mod_access , который отвечает за доступ к каталогам и файлам на сервере. С его помощью можно запретить или, напротив, разрешить доступ с определенных IP-адресов или сетей.

Модель mod_actions позволяет запускать скрипты во время обращения к определенному типу файлов

Модуль mod_actions содержит в себе две директивы, касающиеся запуска CGI-скриптов. «Actions» отвечает за запуск исполняемого файла в тот момент, когда пользователь запрашивает файл определенного типа. Таким образом, можно, например, организовать обработку изображений перед отправкой пользователю или ведение статистики. Вторая директива — «Script» — позволяет выполнять программу, когда какой-либо файл запрашивается с помощью определенного метода (GET, POST или другого специального). С ее помощью можно установить универсальный обработчик формы, который будет выполнять помимо стандартных действий нужные вам. Это может быть обработка данных перед внесением их в базу, отправка по почте, ведение статистики и так далее.

За переадресацию и создание псевдонимов отвечает модуль mod_alias

Если вам нужно пользоваться функциями переадресации или назначения псевдонимов, то вы не обойдетесь без модуля mod_alias . Он содержит в себе директивы, позволяющие ассоциировать псевдоним с определенным каталогом. Например, ваш каталог с картинками выглядит так: /pub/we/images/, то есть доступ на него есть, но через протокол HTTP он не доступен. Если вы не хотите его перемещать по каким-либо причинам, то можете сделать псевдоним: "Alias /img /pub/we/images". После этого пользователи, набирающие в своих браузерах адрес http://ваш_сайт/img/ ,будут попадать на нужный каталог с изображениями. Кстати, такая переадресация используется для каталога с CGI-скриптами.

С помощью модуля mod_asis можно выдавать клиенту страницу "как есть", без обработки сервером

Еще один интересный, но не очень часто используемый вебмастерами модуль — mod_asis , которые позволяет "отдавать" клиенту некоторые файлы без обработки сервером. Для этого в конфигурационном файле нужно добавить строку "AddHandler send-as-is asis", где «asis» — расширение файла. Теперь, когда браузер будет запрашивать у сервера файл с таким расширением, он будет попадать к нему напрямую. Apache только добавит к заголовку идентификаторы «Server» и «Date», все остальное — например, статус — будет отправляться "как есть".

Модули из семейства mod_auth отвечают за аутентификацию пользователей

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

Еще один вид аутентификации — цифровая (HTTP Digest Authentication), которая поддерживает шифрование данных ключом MD5 и считается более надежной, чем базовая. В Apache существует модуль mod_auth_digest , который позволяет вам ею пользоваться. Для вас настройка такой авторизации не будет отличаться практически ничем от предыдущего случая. Только для создания файлов вам нужно будет пользоваться утилитой htdigest . Вообще тема аутентификации пользователей при создании интернет-сайтов очень объемная и интересная. Она вполне заслуживает отдельного материала, а здесь мы постарались лишь описать основные возможности сервера Apachе в этой области.

Функции из модуля mod_autoindex позволяют автоматически создавать индексные файлы

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

С помощью функций из модуля mod_deflate можно сжимать файлы перед отправкой пользователю для ускорения загрузки

Для того чтобы воспользоваться возможностью предварительного сжатия текстовых файлов с вашего сервера, нужно установить модуль mod_deflate . Он позволит включить упаковку исходящих файлов перед отправкой их пользователям. После приема браузер сам распакует файл и покажет его посетителю. Это позволит вам сократить исходящий трафик, ускорит загрузку файлов с сервера и улучшит отношение пользователя к вашему сайту. В документации к серверу приведен хороший пример рекомендуемой конфигурации — он позволит вам избежать неприятностей, если у пользователя окажется старый браузер, не поддерживающий возможностей упаковки, а потому не станем приводить его здесь.

Модуль mod_status позволяет администратору следить за работоспособностью сервера без дополнительных программ. Система будет сама записывать в файл все запросы, поступившие на него, время перезагрузок и остановок сервера, загрузку процессора компьютера и другую информацию. Для этого, кроме установки модуля, нужно создать директиву в файле httpd.conf:


SetHandler server-status

Order Deny,Allow
Deny from all
Allow from .foo.com

В этом случае по адресу http://ваш_сайт/server-status вы сможете посмотреть на статистику сервера. Она будет доступна, только если вы войдете с компьютера, находящегося в домене.foo.com. Впрочем, вы можете установить и другие ограничения доступа.

И последний модуль, о котором хотелось бы рассказать, позволит вам превратить свой веб-сервер в прокси-сервер. Это делается подключением к Apache модуля mod_proxy и других модулей этого "семейства". Apache может работать в двух прокси-режимах: прямом и обратном. Прямой режим требует специальной настройки браузера посетителя и позволяет, например, пользователям локальной сети получать доступ в Интернет. Обратный же никаких дополнительных настроек не требует и предоставляет доступ к компьютерам, которые не видны "извне". Типичный пример — доступ пользователей Интернета к какому-либо сайту, находящемуся внутри локальной сети.

К слову сказать, Apache позволяет организовать не только HTTP, но и FTP-прокси с аналогичными функциями. Кроме того, развитая система директив дает возможность тонко разграничивать права доступа к сетям, разрешать или запрещать прием определенных типов файлов и так далее.

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