Как настроить открытие опубликованной базы 1С по доменному имени без указания порта и имени базы?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При стандартной публикации информационной базы 1С на веб-сервере (например, Microsoft IIS) результирующий URL-адрес для внешних пользователей часто имеет вид http://домен:порт/имя_базы. Однако для удобства пользователей и красивого оформления внешнего сервиса требуется, чтобы база открывалась напрямую по чистому доменному адресу http://domain.ru или https://domain.ru. Разберем по шагам, как избавиться от номера порта и имени базы в строке браузера.

Шаг 1. Скрытие номера порта из URL

Проанализируем правила работы протоколов HTTP и HTTPS в браузерах. Браузеры скрывают номер порта только тогда, когда используются стандартные порты назначения: 80 для незащищенного протокола HTTP и 443 для защищенного протокола HTTPS. Если веб-сервер слушает нестандартный порт (например, 2556 или 8080), браузер вынужден явно отображать его в строке адреса.

Для скрытия порта выполним следующие действия:

  1. Настроим веб-сервер IIS на прослушивание стандартных портов 80 и 443 для целевого сайта.
  2. На пограничном сетевом оборудовании (маршрутизаторе, файрволе) настроим проброс портов (Port Forwarding / NAT): внешние входящие порты 80 и 443 должны перенаправляться на внутренний IP-адрес сервера 1С на те же порты 80 и 443.

Способ 1. Публикация базы непосредственно в корень отдельного сайта IIS

Рассмотрим наиболее надежный и производительный вариант публикации, при котором отпадает необходимость в дополнительных перенаправлениях.

  1. Откроем диспетчер служб IIS (Internet Information Services).
  2. Создадим новый отдельный веб-сайт (не виртуальный каталог внутри Default Web Site), указав отдельную физическую папку на диске (например, C:\inetpub\1c_base).
  3. В привязках (Bindings) созданного сайта укажем порт 80 (или 443) и конкретное доменное имя в поле Имя узла (Host Header).
  4. Запустим конфигуратор 1С с правами администратора и перейдем в меню Администрирование — Публикация на веб-сервере.
  5. В поле выбора веб-сервера и сайта выберем только что созданный сайт, а в качестве имени публикации укажем пустое значение или корень сайта, выбрав физический каталог сайта. При этом файл дескриптора default.vrd будет сформирован непосредственно в корне веб-узла.

При таком подходе обращения к корню домена сразу обрабатываются модулем расширения веб-сервера 1С без смены URL в браузере.

Способ 2. Настройка HTTP-редиректа на уровне IIS

Если база уже опубликована в существующий виртуальный каталог (например, /trade), разберем, как автоматически перенаправлять пользователей, перешедших по чистому имени домена.

  1. В диспетчере IIS выделим корневой веб-сайт, к которому привязан домен.
  2. В центральной панели перейдем в модуль Перенаправление HTTP (HTTP Redirect).
  3. Включим флаг Перенаправлять запросы на следующий адрес и укажем относительный путь к базе: /имя_базы.
  4. Установим флаг Перенаправлять все запросы в этот каталог и снимем флаг для дочерних каталогов, чтобы не зациклить редирект внутри самой базы 1С.
  5. Применим изменения. Теперь при вводе http://домен.ru/ веб-сервер будет отдавать заголовок перенаправления (301/302), и браузер автоматически перейдет на http://домен.ru/имя_базы/.

В качестве легковесной альтернативы модулю IIS можно разместить в корневой папке сайта файл index.html со скриптом перенаправления:


<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="refresh" content="0; url=/имя_базы/">
</head>
<body>
</body>
</html>

Способ 3. Использование обратного прокси-сервера (Nginx)

Рассмотрим вариант архитектуры с установкой обратного прокси-сервера (Reverse Proxy) перед IIS, что часто применяется для распределения нагрузки, гибкой маршрутизации и терминации SSL-сертификатов.

  1. Установим Nginx на шлюзе или на сервере перед IIS.
  2. Настроим виртуальный хост, который будет слушать порты 80/443 и проксировать запросы из корня во внутренний каталог IIS:

server {
    listen 80;
    server_name domain.ru;

    location / {
        proxy_pass http://127.0.0.1:8080/имя_базы/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

В такой схеме внешний клиент видит только адрес http://domain.ru, а Nginx прозрачно транслирует трафик во внутреннюю структуру IIS.

Важные технические нюансы и ограничения

Проанализируем особенности поведения различных клиентов платформы 1С:

  1. Тонкий клиент 1С: Веб-клиент в браузере легко отрабатывает HTTP-редиректы, однако тонкий клиент платформы 1С чувствителен к перенаправлениям 301/302. Для стабильной работы тонкого клиента через интернет рекомендуется использовать публикацию непосредственно в корень отдельного сайта (Способ 1) либо настраивать обратный прокси без изменения относительных путей.
  2. Размещение нескольких баз на одном IP-адресе: Если требуется открывать несколько различных баз без указания их имен, создадим поддомены (например, buh.domain.ru и trade.domain.ru), создав в IIS для каждого поддомена отдельный сайт с собственной привязкой.
  3. Безопасность и HTTPS: Для работы веб-клиента в современных браузерах рекомендуется обязательно использовать порт 443 с действующим SSL-сертификатом, так как некоторые механизмы платформы (например, доступ к буферу обмена и криптографии) блокируются браузерами при незащищенном протоколе HTTP.
← На главную