Веб-сервер для публикации 1С: IIS против Apache
Содержание
Директор просит открыть базу для филиала через браузер. Сервер под Windows, администратор спрашивает: ставить IIS, который уже есть в системе, или тащить Apache? Если сервер на Windows и нет особых причин, берите IIS. Если сервер на Linux или нужна бесплатная связка без лицензии Windows, берите Apache. Остальное ниже: что именно отличается и где подводные камни.
Оба веб-сервера работают одинаково с точки зрения 1С: принимают запрос из браузера или тонкого клиента и передают его на сервер приложений 1С через специальный модуль. Сама логика, производительность запросов к данным и блокировки от выбора не зависят. Разница в установке, обслуживании и окружении.
Как веб-сервер связан с 1С
Веб-сервер здесь работает как посредник. Клиент обращается по адресу вида https://server/base, веб-сервер видит, что это публикация 1С, и отдаёт запрос модулю расширения. Дальше запрос уходит на кластер серверов 1С (или в файловую базу напрямую).
Модуль для каждого сервера свой:
| Веб-сервер | Модуль публикации | Как подключается |
|---|---|---|
| IIS | wsisapi.dll | ISAPI-расширение, обработчик в настройках сайта |
| Apache 2.4 | wsap24.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С.
- Ставят несколько веб-узлов за балансировщиком.
- Разделяют публикации: тонкий клиент, внешние HTTP-сервисы и обмены в разные публикации, чтобы тяжёлый обмен не мешал пользователям.
- Отключают лишнее: ненужные сервисы в
default.vrdне публикуют.
Веб-клиент нагружает сервер сильнее тонкого клиента: часть работы выполняется на стороне веб-сервера и кластера. Для постоянной работы пользователей лучше тонкий клиент по http(s), а веб-клиент оставить для гостевого доступа.
Лицензии и стоимость владения
Здесь разница заметнее всего.
| Статья расходов | IIS | Apache |
|---|---|---|
| Сам веб-сервер | входит в Windows Server | бесплатный |
| Операционная система | нужна лицензия Windows Server | Linux бесплатный, 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С с открытой публикацией регулярно подвергаются перебору паролей. Даже если пользователей мало, перебор нагружает сервер.
Типичные ошибки и как их исправить
Ниже самые частые симптомы, с которыми приходят после первой публикации.
wsisapi.dll добавлен. В Apache проверьте, что модуль загружен и каталог публикации привязан к обработчику.webinst, чтобы модуль и платформа совпадали.Если ни один симптом не подходит, смотрите журналы: error.log в Apache и журнал событий и журналы IIS. Там почти всегда есть строка, которая называет причину.
Как перейти с одного сервера на другой
Переезд безболезненный, если заранее продумать три вещи.
- Адрес. Пользователи привыкли к ссылке. Оставьте то же имя публикации и тот же домен, тогда закладки и ярлыки продолжат работать.
- Внешние обращения. Обмены, мобильные клиенты и интеграции ходят по адресам HTTP-сервисов. Составьте их список и проверьте каждый после переезда.
- Откат. Не удаляйте старую публикацию сразу. Пусть неделю остаётся рядом на другом порту, чтобы можно было быстро вернуться.
Порядок работ простой: поднять новый веб-сервер, опубликовать базу тем же набором сервисов, проверить вход тонким клиентом и браузером, прогнать обмены, затем переключить DNS-имя. Сама информационная база при этом не останавливается и не меняется.
Что выбрать: итоговая схема
Выбор определяется окружением, а не «качеством» сервера.
Короткая памятка:
- ✅ Windows уже есть: IIS.
- ✅ Linux или нужна бесплатная связка: Apache.
- ✅ Выбор сервера почти не влияет на скорость работы базы.
- ✅ Для внешнего доступа HTTPS нужен в любом варианте.
Если сомневаетесь, развернитесь на тестовой машине. Публикация базы занимает несколько минут, а переехать с одного сервера на другой можно, не меняя саму базу: меняется только веб-слой.
Частые вопросы
Можно ли использовать оба веб-сервера одновременно?
Нужно ли переустанавливать базу при смене IIS на Apache?
Бесплатен ли IIS?
Можно ли публиковать 1С на Nginx?
Влияет ли веб-сервер на лицензии 1С?
Что делать, если после обновления платформы публикация перестала работать?
webinst, чтобы обновился модуль.