Преимущество такой структуры заключается в том, что вы можете в любой момент подключать и отключать дополнительные модули, используя именно ту конфигурацию сервера, которая нужна для выполнения ваших задач. Таким образом, 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 в рамках одного материала нам не удалось, даже стандартных их слишком много. Но, с другой стороны, рассказывать обо всех не имеет особого смысла, потому что часть из них очень хорошо известна веб-разработчикам, а другая часть нужна лишь очень узкому кругу людей. Мы постарались говорить в основном о нужных многим модулях, о существовании которых знают далеко не все.
Для работы Агента 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С: Предприятие ".
В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2 ) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного , так и для 64-разрядного модуля расширения веб-сервера.
- Что понадобится
- Установка веб-сервера IIS
- Установка компонент «1С:Предприятие»
- Настройка операционной системы
- Публикация базы данных на веб-сервере
- Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
- Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
- Подключение к опубликованной информационной базе через веб-браузер
- Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
- Конфигурационные файлы виртуального каталога
- Файл default.vrd
- Файл web.config
1. Что понадобится
- Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
- Microsoft Windows Server 2012 (R2)
- Microsoft Windows Server 2008 (R2)
- Права локального администратора на данном компьютере.
- Дистрибутив для установки компонент «1С:Предприятие». Для настройки 64-разрядного модуля расширения веб-сервера, дистрибутив для установки 64-разрядного сервера «1С:Предприятие». В данном примере используется версия 8.3.4.389 . Для более старых версий «1С:Предприятие» (8.1 и 8.2 ) алгоритм публикации баз данных в целом аналогичен.
2. Установка веб-сервера IIS
Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:
- Общие функции HTTP (Common HTTP Features)
- Статическое содержимое (Static Content)
- Документ по умолчанию (Default Document)
- Обзор каталогов (Directory Browsing)
- Ошибки HTTP (HTTP Errors)
- Разработка приложений (Application Development)
- ASP.NET 3.5
- Расширяемость.NET 3.5 (.NET Extensibility 3.5)
- Расширения ISAPI (ISAPI Extensions)
- Фильтры ISAPI (ISAPI Filters)
- Исправление и диагностика (Health and Diagnostics)
- Ведение журнала HTTP (HTTP Logging)
- Монитор запросов (Request Monitor)
- Средства управления (Management Tools)
- Консоль управления IIS (IIS Management Console)
Подробно про процесс развертывания веб-сервера IIS я писал:
- В Microsoft Windows Server 2012 (R2) - здесь. IIS версии 8, после установки должны увидеть страницу Default Web Site вида:
- В Microsoft Windows Server 2008 (R2) - здесь. IIS версии 7, после установки должны увидеть страницу Default Web Site вида:
3. Установка компонент «1С:Предприятие»
На этот же сервер, где развернут веб-сервер IIS, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:
- 1С:Предприятие
- Модули расширения веб-сервера
Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера из соответствующей поставки «1С:Предприятие» и установить компоненту:
- Модуль расширения веб-сервера
4. Настройка операционной системы
Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:inetpubwwwroot ) необходимо дать полные права группе «Пользователи » (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства » (Properties).
В открывшемся окне свойств, переходим на вкладку «Безопасность » (Security) и нажимаем кнопку «Изменить » (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи » (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ » (Full control). Затем нажмем «Применить » (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК ».
Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:Program Files (x86)1cv8 для 32-разрядного модуля расширения и C:Program Files1cv8 для 64-разрядного) группе IIS_IUSRS . Для этого выполняем аналогичные описанным выше действия, с той лишь разницей, что для того чтобы необходимая группа появилась в списке «Группы или пользователи » (Groups or user names) необходимо нажать расположенную под списком кнопку «Добавить » (Add..), а в окне выбора групп или пользователей нажать «Дополнительно » (Advanced…).
Затем нажимаем расположенную справа кнопку «Поиск » (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК ».
Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем «Применить » (Apply) для сохранения изменений.
Ну и наконец, если публикация выполняется для файловой базы, необходимо также дать группе IIS_IUSRS полные права на каталог с расположенными файлами данной информационной базы.
5. Публикация базы данных на веб-сервере
Переходим к непосредственной публикации базы данных на веб-сервере. Для этого запускаем «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать. Затем в меню выбираем «Администрирование » - «Публикация на веб-сервере… »
Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:
- Имя виртуального каталога - имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
- Веб сервер - выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
- Каталог - физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
- Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес » изменить синоним, по которому будет происходить обращение к данному Web-сервису.
- Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.
Выбрав необходимые настройки публикации нажимаем «Опубликовать ».
Если публикация прошла без ошибок, увидим соответствующее сообщение.
Публикация на веб-сервере IIS всегда выполняется для веб-сайта по умолчанию и для пула приложения по умолчанию. Стоит иметь ввиду, что при выполнении публикации из конфигуратора будет зарегистрирован 32-разрядный модуль расширения веб-сервера, а используемый по умолчанию пул приложений - DefaultAppPool - без настройки работает только с 64-разрядными приложениями. Соответственно, дальнейшие действия зависят от разрядности модуля расширения веб-сервера, который планируется использовать. Для 32-разрядного модуля расширения веб-сервера, необходимо разрешить пулу приложений использовать 32-разрядные приложения, либо же зарегистрировать 64-разрядный модуль расширения веб-сервера. Об этом пойдет речь ниже
6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
Средства » (Tools) - «Диспетчер служб IIS
Default Web Site - появился преобразованный в приложение виртуальный каталог с именем, которое мы задавали при публикации базы данных. Для завершения публикации осталось только разрешить 32-разрядные приложения для пула приложений по умолчанию. Для этого перейдем в дереве подключений на вкладку «Пулы приложений » (Application Pools).
В списке пулов приложений найдем пул с именем DefaultAppPool . Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Дополнительные параметры » (Advanced Settings).
В открывшемся окне параметров пула приложения, в группе «Общие » (General) найдем пункт «Разрешены 32-разрядные приложения » (Enable 32-Bit Applications) и установим значение параметра равным True . Затем сохраним изменения нажав «ОК ».
7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
Зарегистрировать 64-разрядный модуль расширения веб-сервера можно с помощью утилиты webinst.exe соответствующей версии, расположенной в каталоге bin , каталога с установленной программой «1С:Предприятие», либо воспользоваться приведенным ниже способом.
Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства » (Tools) - «Диспетчер служб IIS » (Internet Information Services (IIS) Manager).
Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию -Default Web Site - появился преобразованный в приложение виртуальный каталог с именем, которым мы задавали при публикации базы данных. Для завершения публикации осталось только указать данному приложению использовать 64-разрядный обработчик запросов. Для этого откроем страницу настройки сопоставления обработчиков для данного виртуально каталога, выбрав пункт «Сопоставление обработчиков » (Handler Mappings) на начальной странице приложения.
В таблице сопоставлений обработчиков найдем обработчик «1С Web-service Extension». Откроем данный обработчик, кликнув 2 раза по соответствующей строке в таблице.
Отредактируем обработчик, заменив путь к исполняемой dll 32-разрядного модуля расширения веб-сервера, который выбран в данный момент, на путь к 64-разрядной версии библиотеки. В данном примере меняем путь c «C:Program Files (x86)1cv88.3.4.389binwsisapi.dll » на «C:Program Files1cv88.3.4.389binwsisapi.dll » воспользовавшись кнопкой выбора. Изменив путь нажимаем «ОК » для сохранения изменений.
8. Подключение к опубликованной информационной базе через веб-браузер
Ну вот вроде и все. Для подключений к только что опубликованной базе данных, запускаем Internet Explorer, и в строке адреса вводим путь вида http://localhost/<Имя публикации информационной базы> . В данном примере это http://localhost/DemoAccounting/.
К данной информационной базе также можно подключиться и с любого компьютера в сети, обратившись к веб-серверу по его внутреннему (или если прокинут порт 80 , по внешнему) IP-адресу.
В этом случае, для корректной работы «1С:Предприятие», имя домена, на который идет обращение (или IP-адрес) должен быть добавлен в надежные узлы Internet Explorer, а также для него должны быть разрешены всплывающие окна. Подробнее про настройку Internet Explorer для работы веб-клиента «1С:Предприятие» читайте здесь.
9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
К опубликованной на веб-сервере информационной базе можно подключиться и с помощью тонкого клиента «1С:Предприятия». Для подключения откроем окно запуска «1С:Предприятие» и нажмем кнопку «Добавить » для добавления информационной базы.
В окне добавления информационной базы/группы установим переключатель в «Добавление в список существующей информационной базы » и нажмем «Далее ».
Введем имя базы данных, как она будет отображаться в списке информационных баз (должно быть уникальным для данного списка), тип расположения выберем «На веб-сервере » и нажмем «Далее ».
Вводим строку адреса для подключения к информационной базе (без префикса /ru_RU/). Также здесь можно указать параметры прокси-сервера (если есть) и способ аутентификации на веб-сервере. Указав необходимые настройки снова жмем «Далее ».
Указываем параметры запуска для информационной базы и нажимаем «Готово » для завершения работы мастера.
После чего данная информационная база появится в списке баз окна запуска «1С:Предприятие». Обратим внимание что режим запуска Конфигуратор недоступен для данного типа подключения. Нажимаем «1С:Предприятие » для подключения к информационной базе.
10. Конфигурационные файлы виртуального каталога
Рассмотрим подробнее структуру файлов, которые были созданы в процессе публикации. Если веб-доступ к опубликованной информационной базе по каким-то причинам не заработал, конфигурационные файлы можно отредактировать вручную, для достижения желаемого результата (конфигурационные файлы из данной статьи для 64-разрядного модуля расширения веб-сервера можно скачать здесь).
Перейдем в каталог, который мы указывали во время публикации базы данных. В нем увидим два файла:
- default.vrd
- web.config
Оба файла доступны для просмотра и редактирования с помощью любого текстового редактора, например программы «Блокнот» (Notepad). Рассмотрим структуру этих файлов подробнее.
10.1. Файл default.vrd
В файле default.vrd
описываются опубликованные Web-сервисы (элемент
Ib="File="C:1C_BASEDemoAccounting";"
Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.
В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:
Ib="File="C:1C_BASEDemoAccounting";Usr=Продавец;Pwd=123;"
Для серверной информационной базы строка подключения будет иметь вид:
Ib="Srvr="WIN2012"e;;Ref="e;Accounting"e;;"
Где WIN2012 - имя кластера серверов «1С:Предприятие», а Accounting - имя базы данных в кластере.
Подробнее про структуру данного файла можно почитать в книге «Руководство администратора» 2-е издание, Приложение 2, глава 3.12.
10.2. Файл web.config
Файл web.config - это файл, определяющий параметры для ASP.NET web-приложения. В каждом web-приложении должен быть файл web.config , находящийся в его корневом каталоге. Наш виртуальный каталог не является исключением. В текущем файле содержатся данные об обработчике «1С Web-service Extension», обрабатывающем запросы к данному приложению. Обработчик настроен таким образом, что все запросы передаются библиотеке wsisapi.dll , расположенной в каталоге bin , каталога с файлами «1С:Предприятие». В случае использования серверных информационных баз, версия библиотеки должна соответствовать версии кластера серверов «1С:Предприятия».
Данный обработчик можно найти (или добавить, если его нет) в Диспетчере служб IIS. Для этого необходимо выделить вкладку с текущим приложением и в окне свойств выбрать пункт «Сопоставления обработчиков » (Handler Mappings).
В таблице сопоставлений обработчиков увидим наш обработчик «1С Web-service Extension». Если такого обработчика в списке нет, его следует добавить выбрав в окне «Действия » (Actions) пункт «Добавление сопоставления сценария с подстановочными знаками » (Add Wildcard Script Map…).
При добавлении вводим имя обработчика и указываем путь к файлу wsisapi.dll . Данные параметры можно изменить и для действующего обработчика выбрав пункт «Изменить… » (Edit…) в окне списка действий.
Необходимо также убедиться, что для обработчика стоит флаг «Выполнение » (Execute) в окне изменений разрешений функции. Вызвать данное окно можно выбрав пункт «Изменение разрешений функции… » (Edit Feature Permissions…) в окне «Действия » (Actions).