При публикации информационной базы 1С на веб-сервере системные администраторы часто сталкиваются с проблемой: если в настройках публикации указан локальный IP-адрес для скачивания тонкого клиента, пользователи из внешней сети не могут его получить. Если же указать внешний публичный IP-адрес или внешнее доменное имя, то клиенты из локальной сети перестают скачивать обновление. Выясним причину этой проблемы и проанализируем доступные варианты решения.
Проанализируем ситуацию, почему возникает подобный конфликт адресов. Платформа «1С:Предприятие» в конфигурационном файле публикации default.vrd позволяет задавать только один URL-адрес для получения дистрибутива тонкого клиента. Указать несколько IP-адресов через запятую или точку с запятой платформа не позволяет.
Когда внутренний пользователь обращается к веб-серверу, его локальный компьютер не всегда умеет правильно маршрутизировать запросы на внешний IP-адрес компании (особенно если на маршрутизаторе не настроена технология Hairpin NAT). В свою очередь, внешние пользователи из интернета не имеют доступа к внутренним IP-адресам локальной сети. Разберем по шагам проверенные способы решения этой задачи.
Рассмотрим вариант размещения архива с дистрибутивом тонкого клиента непосредственно на веб-сервере или в общем сетевом ресурсе. Вместо использования абсолютных HTTP-ссылок с указанием конкретного IP-адреса можно использовать относительный путь или сетевой каталог.
Разместите zip-архив дистрибутива в каталоге веб-сервера (в папке самой публикации). В этом случае в настройках публикации или напрямую в файле default.vrd задается относительный URL:
/platform/thin_client.zip
При таком подходе тонкий клиент скачивает файл по тому же сетевому хосту и веб-адресу, через который он установил соединение с информационной базой. Внутренние пользователи будут скачивать архив по внутреннему адресу, а внешние — по внешнему.
Посмотрим на пример решения проблемы на уровне сетевой инфраструктуры. Это один из наиболее универсальных и правильных способов организации доступа к ресурсам компании.
1c.company.ru).1c.company.ru с локальным IP-адресом веб-сервера (например, 192.168.1.100).1c.company.ru с публичным IP-адресом компании.В результате пользователи внутри сети обращаются по доменному имени и попадают на внутренний IP-адрес, а внешние пользователи — на внешний IP-адрес, при этом адрес ссылки на дистрибутив остается одинаковым для всех.
Разберем еще один способ, подходящий для небольшой локальной сети. Если нет возможности настроить внутренний DNS-сервер, сопоставление внешнего доменного имени и внутреннего IP-адреса можно прописать вручную в файле hosts на операционных системах пользователей.
Для этого откроем файл C:\Windows\System32\drivers\etc\hosts с правами администратора и добавим строчку сопоставления локального IP-адреса веб-сервера и внешнего домена:
192.168.1.100 1c.company.ru
В параметрах публикации 1С при этом указываем доменное имя 1c.company.ru. Локальные ПК будут обращаться напрямую к внутреннему серверу, а внешние пользователи — через интернет по публичному DNS.
Проанализируем решение на стороне сетевого оборудования. Если в публикации 1С указан внешний IP-адрес или внешний домен, можно настроить роутер таким образом, чтобы он перенаправлял запросы локальных клиентов к внешнему IP-адресу обратно на внутренний сервер 1С.
После включения NAT Loopback на роутере и внутренние, и внешние пользователи смогут одинаково успешно обращаться по внешнему IP-адресу или домену для скачивания обновлений.
Рассмотрим вариант разделения публикаций на веб-сервере. На одном веб-сервере (Apache или IIS) можно опубликовать одну и ту же информационную базу под разными именами (например, base_local и base_web):
base_local указываем путь к дистрибутиву во внутренней сети или внутренний IP-адрес. К ней подключаются только сотрудники из локальной сети.base_web указываем внешний адрес или внешний путь. Данная публикация предназначается для внешних пользователей из интернета.Таким образом, комбинируя сетевые настройки и возможности платформы 1С, мы можем полностью решить проблему с автообновлением тонкого клиента для всех категорий пользователей.