Iis как добавить приложение
Настройка веб-сервера IIS
Большинство пользователей при работе в тонком или веб-клиенте используют в основном публикацию информационных баз на основании протокола HTTP. С одной стороны — это простой и быстрый способ дать доступ к информационной базе пользователю, у которого нет дистрибутива тонкого клиента, и он может работать только в веб-клиенте или у пользователя нет прямого доступа к серверу "1С:Предприятие". С другой стороны – информационные базы, опубликованным таким образом, категорически не рекомендуются публиковать в глобальной сети Интернет, так как в таком случае используется незащищенный канал, данные по которому могут быть перехвачены злоумышленниками. Например, распространенные виды атак это:
Внимание! В статье не рассматривается выпуск и получение сертификата проверенных поставщиков. Этот пункт должен быть выполнен самостоятельно на основании предпочтений выбора провайдера услуг. В статье предполагается что, пропуская шаг выпуска самоподписанных сертификатов, у пользователя или администратора он имеется в наличие и будет подставлен в настроечные файлы, вместо указанных в статье самоподписанных сертификатов.
План работ:
Включение компонент веб-сервера.
Windows Server 2012 R2, 2016 и 2019.
Выпуск самоподписанного сертификата (Необязательно).
1. Включение компонент веб-сервера
По умолчанию в операционной среде Windows компоненты веб-сервера не установлены. В зависимости от версии установка может несущественно различаться. Мы будем рассматривать два варианта – это распространенный дистрибутив Windows 10, если планируются использовать для пробного включения шифрования протокола и Windows Server 2016/2018, если уже планируется непосредственное разворачивание публикации в продуктивной зоне.
1.1. Windows 10
Включение компонентов веб-сервера IIS в операционной системе Windows 10 выполняется достаточно просто. Для начала нужно открыть раздел "Программы и компоненты" ("Programs and Features") в панели управления (Control panel). Сделать можно это несколькими способами:
Нажать сочетание клавиш Win + R и в открывшемся окне ввести "appwiz.cpl" и нажать ОК.
Открыть панель управления (Control panel) и выбрать пункт меню Программы – Программы и компоненты (Programs – Programs and features).
В окне "Программы и компоненты" ("Programs and Features") нажмите на кнопку "Включение и отключение компонентов Windows" ("Turn Windows features on or off").
Когда откроется окно "Компоненты Windows" ("Windows features") в нем необходимо будет проставить флажки для следующих элементов:
Компоненты разработки приложений
Средства управления веб-сайтом
Консоль управления IIS
После этого нажимайте на кнопку "OK" и дождитесь завершения выполнения операции. После того как включение компонент будет выполнено, можно переходить к пункту "2. Публикация информационной базы".
1.2 Windows Server 2012 R2, 2016 и 2019
Настройка компонент для Windows Server 2012 R2, Windows Server 2016 и Windows Server 2019 одинаковая и все настройки производятся в диспетчере серверов (Server Manager).
Откройте диспетчер серверов (Server Manager) и нажмите Управление – Добавить роли и компоненты (Manage – Add Roles and Features).
В ответ на нажатие откроется окно мастера добавления ролей и компонентов (Add Roles and Features).
В этом окне нажмите два раза "Далее" ("Next") пока мастер не переключится на страницу ролей сервера (Server Roles).
Во вкладке роли сервера (Server Roles) установите флажок "Web Server IIS". Так как эта роль зависит от другой роли ([Tools] IIS Management Console), то будет предложено установить ее дополнительно. Это можно сделать с помощью нажатия кнопки "Добавить компоненты" (Add Features) в открывшемся окне. После чего нажимаем кнопку "Далее" ("Next") пока мастер не дойдет до вкладки "Роль веб-сервера IIS" ("Web Server Role IIS"). На этой вкладке нажимайте кнопку "Далее" ("Next") и попадете на вкладку "Службу ролей" ("Role Services"). Во вкладке нужно найти пункт "Application Development" и выбрать в нем с помощью флажков пункты "ISAPI Extensions" и "ISAPI Filters". Как только закончите с установкой флажков нажимайте "Далее" ("Next") и "Установить" ("Install").
На этом установка веб-сервера завершена. Можно переходить к настройкам сертификатов.
2. Выпуск самоподписанного сертификата
Выпуск самоподписанного сертификата для веб-сервера IIS максимально простой.
Для реальных систем не рекомендуем использовать самоподписанный сертификат.
Для начала процедуры выпуска откройте окно Диспетчера служб IIS (Internet Information Services (IIS) Manager) и выделите сервер в списке Подключений (Connections) . После этого нажмите на ссылку "Сертификаты сервера" ("Server Certificates") .
Откроется окно доступных сертификатов сервера (Server Certificates) в котором нужно нажать "Создать самозаверенный сертификат…" ("Create Self-Signed Certificate…").
В окне мастера создания самоподписанного сертификата остается указать только произвольное название сертификата. В большинстве случаев, во избежание путаницы лучше явно указывать в качестве значения "Полное имя сертификата" ("Specify a friendly name for the certificate") адрес сервера, на котором расположен сервер IIS. Как только имя сертификата будет задано нажимайте на кнопку OK и переходите к пункту привязки сертификата.
3. Привязка сертификата
Предполагается, что сертификат получен и добавлен в список сертификатов сервера. Если сертификат получен с помощью распространенного сертифицирующего центра, то его нужно предварительно импортировать в окне "Сертификаты сервера" ("Server Certificates").
Как только сертификат появится в списке, переходим непосредственно к его привязки к публикации сайта. Для этого выделяем "Default Web Site" и в окне "Действия" ("Actions") нажимаем на пункт "Привязки…" ("Binding…").
В этом окне можно увидеть, что публикация работает только на порту 80, который относится к незащищенному протоколу HTTP. Чтобы его расширить, нажмите кнопку Добавить… (Add…) слева от списка привязок сайта и в открывшемся окне выберите Тип (Type) в качестве значения "https". Завершением настройки будет выбор ранее импортированного сертификата в списке "SSL-сертификат" ("SSL certificate"). Нажимаем кнопку OK и закрываем мастер привязок сайта.
Можно переходить к публикации информационной и проверки его работоспособности.
4. Проверка публикации
Для публикации информационной базы нужно открыть конфигуратор конкретной базы от имени администратора и перейти в пункт меню "Администрирование". После этого выбрать "Публикация информационной базы".
В окне публикации указать имя публикации и по желанию определить каталог, где будут находиться настройки публикации. Его также можно оставить по умолчанию.
После этого требуется нажать кнопку "Опубликовать" и дождаться окончания операции.
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
В настоящей статье рассмотрен пример размещения веб-приложения на IIS-севере.
Первым шагом необходимо выполнить настройку IIS.
Предварительно необходимо выполнить настройку сервера через средство администрирования IIS - Диспетчер служб IIS: зайдем в Панель управления -> Администрирование -> Диспетчер служб IIS.
Новый сайт (веб-приложение) будет размещено в узле по умолчанию (в моем случае это Default Web Site). Для этого вначале создадим в каталоге этого узла папку для приложения. По умолчанию каталогом для стандартного веб-узла является каталог C:inetpubwwwroot. Перейдем в этот каталог и создадим в нем папку web, которая будет содержать наше приложение.
Теперь возвращаемся в Диспетчер служб IIS, нажимаем правой кнопкой мыши на имя узла по умолчанию и в контекстном меню выбираем пункт "Добавить приложение". Скриншот ниже.
В окне "Добавление приложения" необходимо ввести соответствующие настройки (в качестве физического пути приложения указывается каталог, созданный ранее):
Сайт у нас практически создан. Теперь осталось разместить в каталоге C:inetpubwwwrootweb приложение.
Вторым шагом выполняем публикацию приложения через Visual Studio.
Перейдем к созданному приложению в Visual Studio. Нажмем правой кнопкой на название проекта и в появившемся меню выберем "Опубликовать".
В открывшемся окне мастера публикации необходимо выполнить ряд этапов.
Нажмем на кнопку "Настроить" и укажем название профиля. Название профиля может быть произвольным.
После ввода профиля откроется окно настроек публикации. Необходимо выбрать способ публикации "файловая система" и указать каталог для публикации приложения.
"Целевое расположение" может быть указано произвольно. Но в дальнейшем необходимо выполнить копирования опубликованного веб-приложения в каталог, созданный ранее - C:inetpubwwwrootweb.
После установки этих настроек, при нажатии кнопки далее откроется окно для установки ряда дополнительных опций.
Прежде всего здесь надо указать конфигурацию: Release или Debug. Кроме того, также можно указать целевой фреймворк и ряд дополнительных опций, такие как подключение к базе данных. Но в данном случае оставим все настройки по умолчанию и нажмем на кнопку "Опубликовать". После окончания процесса публикации по указанному пути появятся опубликованные файлы.
Следует учитывать, что каталог для веб-приложения, созданный в C:inetpubwwwroot - по умолчанию имеет права "только для чтения".
После чего жмем ОК и ждем, пока все скачается и установится. По данному пункту хотел еще пояснить, что проставлены необходимые для работы 1С компоненты, ничего кроме этого мне не понадобилось пока. Данный набор ставил и на WIN 7 и на WIN10
2. Первоначальная настройка IIS.
2.1. Дать доступ службе IIS к:
- Платформа1С (C:\Program Files (x86)\1cv8),
- База1С тут точного пути, нет у каждого он свой.
Для этого на каждой из папок клацаем правой кнопкой мыши Свойство-Безопасность - Изменить - Добавить -IIS_IUSRS; IUSR и проставить галочки полного доступа. После нажатия на ОК могут появиться ошибки "Отказ в доступе" нажимайте "Продолжить" и все.
2.2. Разрешить IIS работать с 32 битными приложениями.(Этот пункт нужен если у вас WIN 64-битная а 1C 32-битная, поэтому почти всем) Заходим Панель управления - Администрирование -Диспетчер служб IIS,
3. Публикация базы данных
3.1. Установка платформы обязательно с установленной галочкой "Модуль расширения веб-сервера"
3.2. Запускаем 1С под правами администратора в режиме Конфигуратор - Администрирование - Публикация на веб-сервере.
И все, больше ничего не нужно.
Есть один совет: Если база будет доступна через 1С, нелишнее для обеспечения дополнительной безопасности опубликовывать её с именем, которое будет ничего не значить. Лучше вообще случайным набором букв и цифр (qAdsfslj- например), пользователи, даже если работают через браузер, заходят по ссылке, а вам дополнительное спокойствие, но при таком подходе есть минус, если снял базу с публикации, например, для обновления, то имя будет меняться на наименование папки базы данных, и если не сохранил где-то это имя, то начинаешь искать эту ссылку, и ладно, если баз одна -две, а если их несколько десятков, то можно и перепутать. Попав пару раз, сделал следующим образом "D:\Bases1C\Buh\qAdsfslj" - где "Buh"-название понятное для меня а вот "qAdsfslj"- имя базы при публикации.
Если после установки и настройки IIS + 1C 8.3 (на АПАЧе все работало) внутри локальной сети все хорошо, а при входе через интернет вроде все хорошо, но при формировании табличного документа происходят странные вещи, вместо значков группировок отчета выходит "разорванный листочек", и выделить ячейку в отчете не получается (хотя при двойном нажатии расшифровки работают), а еще на экране нет картинок и штрихкодов в табличном документе (отчете) но если этот же отчет сохранить в эксель или распечатать, все выходит как надо. Значит, вы "попали" так же как и я (искал решение очень долго, почему и пишу данную статью).
Перепробовал все предложенные варианты настроек в интернете, не помогло, сменил Windows (7,10, 2008), компьютер, версии 1C и IIS (7.0, 7.5, 10) не помогает. При этом нужно учесть еще и такой момент что в этой же сети уже работает один сервер IIS+1С и там все работает как надо.
А дело было в том, что после того, как я запускал сервер, я тут же делал проброс порта через роутер наружу и поскольку уже имелся сервер работающий по 80 порту, пробрасывал на альтернативный (444, 98, 90, и тд. переустановок было много). и получал печальный результат. А нужно было сначала сделать прямой проброс 80-80 зайти в 1С через Интернет. а после можно менять порт на любой. Вариант был проверен неоднократно.
Буду рад, если кому-то поможет, и не позволит потерять очень много времени и нервов.
1. Общий план
В принципе уже этой схемы достаточно для прохождения интервью в большинстве компаний и получения общего представления об архитектуре IIS. Но если вы не для галочки сюда зашли, то прошу следовать далее.
2. Крупный план
Теперь остановимся чуть поподробнее на каждом из упомянутых компонентов.
2.2. World Wide Web Publishing Service (W3SVC)
Рис.2. Рабочий процесс со службами W3SVC и WAS.
- NetTcpActivator для протокола TCP;
- NetPipeActivator для Named Pipes;
- NetMsmqActivator для Message Queuing (ака MSMQ).
Но всё-таки наиболее важным для нас адаптером является именно WWW-служба, т.ч. остановимся чуть подробнее на двух оставшихся от IIS 6 функциях.
2.3. Windows Process Activation Service (WAS)
- Адаптеры прослушивателей (Listener adapters) – специальные службы Windows, работающие с конкретным протоколом и взаимодействующие с WAS для направления запросов к правильному рабочему процессу.
- Собственно WAS. Она ответственна за создание рабочих процессов и управление их временем жизни.
- Исполняемый файл w3wp.exe – шаблон рабочего процесса.
- Менеджер приложений управляет созданием и утилизацией доменов приложений (application domains), которые хостятся внутри рабочего процесса.
- Обработчики протоколов – протоколозависимые компоненты внутри рабочего процесса, ответственные за обмен данными между конкретным адаптером и рабочим процессом. Есть 2 типа обработчиков протоколов: у процесса (process protocol handler — PPH) и у домена приложения (AppDomain protocol handlers — ADPH).
Рис. 4. Компоненты w3wp.exe для взаимодействия с внешними компонентами.
А соответствующие компоненты PPH и ADPH настраиваются в дотнетовском machine.config:
В конфигурационном файле веб-сервера ApplicationHost.config вместе с настройками приложений хранятся связки (bindings), определяющие параметры входящих запросов, которые будут направляться данному приложению. Такими параметрами являются название сетевого протокола, IP-адрес сервера, доменное имя и порт сайта. Эти параметры должны быть уникальными среди работающих приложений для однозначной идентификации целевого приложения. Служба WAS отслеживает это ограничение и не даст вам запустить сайт, у которого это условие не соблюдено, либо предложит остановить сайт с такой же связкой.
2.4. Пул приложений
При конфигурации веб-приложения помимо привязок (binding) к параметрам запросов и прочих настроек указывается принадлежность к пулу приложений. Пул приложений стал нововведением в IIS 6 и был призван обеспечить изоляцию веб-приложений друг от друго и тем самым повысить стабильность работы веб-сервера в целом. Суть заключается в том, что код приложения выполняется внутри специального процесса Windows – w3wp.exe. Поэтому исключение внутри веб-приложения приведёт к краху только этого процесса и никак не повлияет на доступность веб-приложений в других пулах и работу служб IIS. Более того, служба WAS попытается заново запустить упавший сайт, и внешние клиенты могут даже не заметить проблем в работе сервера.
Для управления некоторыми параметрами отдельно взятого рабочего процесса w3wp.exe в IIS используется пул приложений. Наиболее часто используемыми из них являются учётная запись, под которой будет запущен процесс, ограничения для очереди запросов, различные таймеры и счетчики для автоматического перезапуска процесса, архитектура x86/x64 (в IIS 7.x) и некоторые другие (рис. 5), о чём любопытный читатель может с лёгкостью прочесть в MSDN и любимом поисковике. Т.о. можно говорить (с определёнными оговорками, см. тж. последний абзац в 2.5) о тождественности процесса w3wp.exe и пула приложений.
Рис. 5 Дополнительные настройки пула приложений
Рис. 6. Идеология модулей в IIS.
На практике самое важное, что необходимо учитывать при разработке и развёртывании веб-приложений, – это частичная несовместимость этих двух режимов. Т.е. при переводе сайта (точнее пула приложений, в котором работает сайт) из классической модели во встраиваемую практически всегда потребуется корректировка кода (хоть, возможно, и не значительная), а также тщательное тестирование.
2.5. Домен приложения, приложение
Ещё один важный момент, который хотелось бы здесь отметить. По умолчанию каждый отдельный рабочий процесс может использовать все имеющиеся на сервере процессоры/ядра, а пул приложений работает на одном рабочем процессе и, следовательно, веб-приложение работает внутри одного IIS-приложения. Тем не менее, вы можете настроить web garden, увеличив кол-во рабочих процессов на пул и, следовательно, число IIS-приложений на одно веб-приложение. Вы без труда сможете найти на просторах интернета информацию о web garden, поэтому опускаю здесь подробности. Единственное, хотелось бы предупредить, что данное средство не является инструментом увеличения производительности, т.к. по умолчанию и так используются все вычислительные мощности сервера. Наоборот, на синхронизацию работы 2+ рабочих процессов уходил «лишнее» время CPU. Делается это в основном для увеличения доступности веб-приложения. Нельзя здесь также не упомянуть о веб-ферме (web farm), как о простейшем средстве балансировки нагрузки в IIS – об этом тоже достаточно статей в Сети. Это другой пример распределённого веб-приложения. Впрочем, с тем же nginx встроенная балансировка нагрузки в IIS конкуренции не выдерживает, и в реальных высоконагрузочных системах вам придётся изобретать свой велосипед или задействовать продукты сторонних производителей.
3. Что дальше?
Дальше нужно разбираться в работе модулей (в терминах IIS) и событийной модели, в которых уже происходит собственно обработка запроса, о чем упоминалось в разделе 2.4. Вообще говоря, эта тема заслуживает отдельной статьи, на которую, боюсь, меня уже не хватит. Но без этого нельзя сказать, что мы рассмотрели весь конвейер обработки запросов. Поэтому кратко пройдёмся здесь по основным моментам, которые любопытствующий читатель может проработать самостоятельно.
Читайте также: