Веб-сервер для публикации 1С: IIS против Apache

· 9 мин

Содержание

Директор просит открыть базу для филиала через браузер. Сервер под Windows, администратор спрашивает: ставить IIS, который уже есть в системе, или тащить Apache? Если сервер на Windows и нет особых причин, берите IIS. Если сервер на Linux или нужна бесплатная связка без лицензии Windows, берите Apache. Остальное ниже: что именно отличается и где подводные камни.

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

Как веб-сервер связан с 1С

Веб-сервер здесь работает как посредник. Клиент обращается по адресу вида https://server/base, веб-сервер видит, что это публикация 1С, и отдаёт запрос модулю расширения. Дальше запрос уходит на кластер серверов 1С (или в файловую базу напрямую).

Модуль для каждого сервера свой:

Веб-серверМодуль публикацииКак подключается
IISwsisapi.dllISAPI-расширение, обработчик в настройках сайта
Apache 2.4wsap24.dllМодуль, подгружается в httpd.conf

Файл публикации default.vrd лежит в каталоге публикации и описывает, какие сервисы доступны: клиент, веб-сервисы, HTTP-сервисы, OData. Формат этого файла один и тот же для обоих серверов.

Публикацию проще всего делать из конфигуратора: меню «Администрирование» → «Публикация на веб-сервере». Конфигуратор сам создаёт каталог, default.vrd и правит настройки сервера. Для Apache при этом нужен указанный каталог установки, для IIS — запуск от администратора.

Если нужны сценарии без конфигуратора (скрипты, несколько баз), есть консольная утилита webinst. Она умеет и публиковать, и снимать публикацию, и работать с обоими серверами.

Установка и первая настройка: что проще

IIS

Для IIS нужен Windows Server (или клиентская Windows для тестов). Роль ставится через диспетчер сервера, а вот про компоненты стоит помнить отдельно. Минимально нужны:

  • расширения ISAPI;
  • фильтры ISAPI;
  • статическое содержимое;
  • консоль управления IIS.

Если пропустить ISAPI, публикация создастся, но запрос закончится ошибкой обработчика. Это самая частая причина «ничего не открывается» после первой публикации.

Плюс IIS: графический интерфейс. Привязка сайта, сертификата, пула приложений делается мышкой, видно, что включено.

Apache

Apache ставят дистрибутивом под Windows или пакетом из репозитория в Linux. На Windows чаще берут сборку, где уже есть mod_ssl. Версия должна быть 2.4, а разрядность Apache — совпадать с разрядностью модуля 1С.

Настройка идёт правкой текстовых файлов. Для опытного администратора это даже удобнее: конфиг можно хранить в git, копировать на другой сервер, сравнивать. Для человека, привыкшего к окнам, это барьер.

Самая частая ошибка с Apache на Windows: служба запускается под системной учётной записью без доступа к каталогу публикации или к библиотекам 1С. В логе error.log при этом видно отказ при загрузке модуля. Проверьте права учётной записи службы до того, как начнёте искать ошибку в конфиге.

Что проще в итоге

  • IIS проще для тех, кто работает на Windows и привык к оснасткам.
  • Apache проще для тех, кто работает с конфигами и скриптами, и обязателен, если сервер на Linux.
  • Для Linux-сервера 1С IIS вообще не вариант.

Производительность и нагрузка

Главное, что стоит знать: узкое место публикации почти всегда не веб-сервер. Время ответа определяют запросы к СУБД, блокировки, работа серверного кода 1С и сеть. Веб-сервер только пропускает запрос.

Ориентир по нагрузке: на 20–50 одновременных пользователей оба варианта работают без заметной разницы на обычной виртуальной машине с 2–4 ядрами. Если сервер упёрся в процессор на веб-узле, чаще виноваты не Apache или IIS, а, например, шифрование HTTPS на слабом ядре или антивирус, проверяющий каждый обмен.

Различия есть в модели работы:

  • IIS изолирует публикации в пулах приложений. Можно перезапускать пул отдельной базы, не трогая остальные.
  • Apache работает процессами или потоками (зависит от режима, на Windows это один процесс с потоками). Перезапуск конфига затрагивает всех, хотя плавная перезагрузка graceful снимает проблему на Linux.

Когда нагрузка растёт, обычно делают не «смену Apache на IIS», а другие вещи:

  1. Выносят веб-сервер на отдельную машину от кластера 1С.
  2. Ставят несколько веб-узлов за балансировщиком.
  3. Разделяют публикации: тонкий клиент, внешние HTTP-сервисы и обмены в разные публикации, чтобы тяжёлый обмен не мешал пользователям.
  4. Отключают лишнее: ненужные сервисы в default.vrd не публикуют.

Веб-клиент нагружает сервер сильнее тонкого клиента: часть работы выполняется на стороне веб-сервера и кластера. Для постоянной работы пользователей лучше тонкий клиент по http(s), а веб-клиент оставить для гостевого доступа.

Лицензии и стоимость владения

Здесь разница заметнее всего.

Статья расходовIISApache
Сам веб-сервервходит в Windows Serverбесплатный
Операционная системанужна лицензия Windows ServerLinux бесплатный, Windows платный
Администрированиепроще найти специалиста по Windowsнужен навык работы с конфигами
Лицензии 1Сне зависят от веб-серверане зависят от веб-сервера

Лицензия Windows Server Standard стоит по-разному у разных поставщиков, и цены сильно менялись. Ориентировочно это порядка сотни тысяч рублей за сервер, а на виртуальной машине у провайдера лицензия включена в аренду и добавляет заметную долю к месячной цене. Если сервер Windows у вас уже есть (в нём работают кластер 1С или СУБД), IIS ничего не добавляет к стоимости.

Apache экономит деньги, только когда вся связка уходит на Linux: Linux, PostgreSQL, сервер 1С и Apache. Если ради Apache вы ставите отдельный Windows, экономия исчезает.

Не забудьте про человеческий ресурс. Администратор, который знает Windows, настроит IIS за вечер. Тому же администратору освоение Apache может стоить нескольких дней, а ошибка в конфиге стоит простоя. Считайте стоимость владения целиком, а не только лицензии.

Безопасность и HTTPS

Для публикации во внешней сети HTTPS обязателен. Логины и пароли пользователей идут по открытому каналу, если его не включить.

HTTPS в IIS

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

HTTPS в Apache

В конфиге подключается mod_ssl, указываются файлы сертификата и ключа. На Linux есть готовая связка с автоматическим продлением бесплатных сертификатов, что делает Apache удобным для небольших организаций.

Что общее для обоих

  • Закрыть ненужные протоколы: устаревшие версии TLS отключить.
  • Публиковать только нужные сервисы. Если не нужен OData или веб-сервисы, в default.vrd их не включают.
  • Не выставлять в интернет сервер приложений 1С и СУБД. Наружу смотрит только веб-сервер.
  • Ограничить доступ к каталогу публикации: на нём не должно быть лишних прав записи.
  • Вести журнал обращений и смотреть на аномальные пики запросов.

Про управление доступом: пользователей и права определяет сама 1С, веб-сервер на это не влияет. Но и IIS, и Apache умеют добавить свой слой: доступ по IP-адресам, дополнительная проверка подлинности. Для внешнего доступа это разумная защита.

Не публикуйте базу наружу без HTTPS и без ограничений. Базы 1С с открытой публикацией регулярно подвергаются перебору паролей. Даже если пользователей мало, перебор нагружает сервер.

Типичные ошибки и как их исправить

Ниже самые частые симптомы, с которыми приходят после первой публикации.

Диагностика: выберите симптом

Если ни один симптом не подходит, смотрите журналы: error.log в Apache и журнал событий и журналы IIS. Там почти всегда есть строка, которая называет причину.

Как перейти с одного сервера на другой

Переезд безболезненный, если заранее продумать три вещи.

  1. Адрес. Пользователи привыкли к ссылке. Оставьте то же имя публикации и тот же домен, тогда закладки и ярлыки продолжат работать.
  2. Внешние обращения. Обмены, мобильные клиенты и интеграции ходят по адресам HTTP-сервисов. Составьте их список и проверьте каждый после переезда.
  3. Откат. Не удаляйте старую публикацию сразу. Пусть неделю остаётся рядом на другом порту, чтобы можно было быстро вернуться.

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

Проверка после переезда веб-сервера
Выполнено: 0 / 5

Что выбрать: итоговая схема

Выбор определяется окружением, а не «качеством» сервера.

Какая у вас инфраструктура?

Короткая памятка:

  • ✅ Windows уже есть: IIS.
  • ✅ Linux или нужна бесплатная связка: Apache.
  • ✅ Выбор сервера почти не влияет на скорость работы базы.
  • ✅ Для внешнего доступа HTTPS нужен в любом варианте.

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

Частые вопросы

Можно ли использовать оба веб-сервера одновременно?
Да, на разных машинах или портах. Для одной и той же базы выбирайте один, чтобы не усложнять поддержку.
Нужно ли переустанавливать базу при смене IIS на Apache?
Нет. Данные хранятся в СУБД или файловой базе. Меняется только публикация: её снимают на одном сервере и создают на другом.
Бесплатен ли IIS?
Отдельной платы нет, он входит в Windows Server. Но сама система Windows Server требует лицензии.
Можно ли публиковать 1С на Nginx?
Для публикации через штатный механизм платформы поддерживаются IIS и Apache. Nginx используют как обратный прокси перед ними, а не как замену модулю 1С.
Влияет ли веб-сервер на лицензии 1С?
Нет. Количество пользовательских лицензий и лицензии сервера определяются отдельно и от выбора IIS или Apache не зависят.
Что делать, если после обновления платформы публикация перестала работать?
Переопубликуйте базу из конфигуратора или утилитой webinst, чтобы обновился модуль.