Публикация базы данных 1С на веб-сервере — это стандартная задача, когда необходимо обеспечить доступ сотрудников к системе из любой точки мира. Однако наличие статического IP-адреса и установленного Apache — это лишь часть пути. Часто пользователи сталкиваются с тем, что внутри локальной сети база открывается, а «извне» — нет. Разберем подробно, как правильно настроить всю цепочку прохождения сигнала: от роутера до конфигурационных файлов 1С.
Для начала проанализируем настройки самого веб-сервера. Чтобы Apache принимал запросы не только из локальной петли, но и по конкретному сетевому интерфейсу, необходимо проверить файл httpd.conf. В этом файле за сетевые подключения отвечает директива Listen. Для автоматического развертывания веб-сервера и подготовки правил брандмауэра можно использовать скрипт установки Apache HTTP Server для Windows.
Если в конфигурации указано просто Listen 80, сервер будет слушать все доступные сетевые интерфейсы на 80-м порту. Однако в некоторых случаях системные администраторы ограничивают прослушивание конкретным IP. Убедимся, что сервер готов принимать внешние соединения. После внесения изменений обязательно выполним перезапуск службы, чтобы настройки вступили в силу. В консоли это делается командой:
httpd -k restart
# или через apachectl
apachectl reload
Выясним причину, по которой статический адрес «не видит» ваш компьютер. В большинстве случаев компьютер с Apache находится за роутером в локальной сети и имеет внутренний адрес (например, 192.168.1.10). Внешний статический IP-адрес принадлежит самому роутеру. Чтобы запрос из интернета попал на нужный компьютер, необходимо настроить NAT (Network Address Translation) или Port Forwarding.
Рассмотрим алгоритм настройки на роутере:
Теперь все запросы, приходящие на ваш статический IP, будут автоматически перенаправляться роутером на сервер с 1С.
Посмотрим на важный нюанс безопасности в современных версиях Apache (2.4 и выше). Даже если порт открыт, сервер может выдать ошибку 403 Forbidden, если в настройках директории публикации не разрешен доступ внешним клиентам. Найдем в httpd.conf блок, описывающий вашу публикацию 1С, и проверим наличие директивы Require all granted.
Пример правильной настройки доступа к каталогу:
<Directory "C:/inetpub/wwwroot/my_base">
AllowOverride None
Options None
Require all granted
</Directory>
Если вместо этого указано Require local или Deny from all, внешнее подключение будет заблокировано на уровне веб-сервера.
Проанализируем работу системы безопасности ОС Windows. Даже после успешного проброса портов на роутере, входящий трафик может быть «зарублен» встроенным Firewall. Нам необходимо создать правило для входящих подключений:
Разберем техническую тонкость, которая часто приводит к падению веб-сервера при попытке входа. Разрядность установленного Apache должна строго соответствовать разрядности установленной платформы 1С. Если вы используете 64-битную версию 1С:Предприятие, то и Apache должен быть x64. В файле httpd.conf должна быть корректно прописана загрузка модуля расширения 1С, например:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.22.1709/bin/wsap24.dll"
Обратите внимание на путь к библиотеке wsap24.dll (для Apache 2.4). Если путь указан неверно или версия платформы обновилась, а путь остался старым, публикация не заработает.
В каталоге, куда была опубликована база, лежит файл default.vrd. Это XML-конфигурация, которая управляет поведением веб-клиента и тонкого клиента. Проанализируем его содержимое. Здесь можно настроить параметры пула соединений для оптимизации нагрузки:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
base="/my_base"
ib="Srvr="ServerName";Ref="BaseName";">
<httpServices>
<service name="MyService" rootUrl="mysrv" enable="true"/>
</httpServices>
</point>
Убедимся, что у пользователя, от имени которого запущен Apache (обычно это SYSTEM), есть полные права доступа к папке, в которой находится этот файл. Для автоматизации управления веб-публикациями можно использовать утилиту для настройки и администрирования публикаций 1С.
Выясним, как правильно прописать адрес базы на удаленном компьютере. Если ваш статический IP — 1.2.3.4, а имя публикации — my_base, то в окне добавления информационной базы необходимо выбрать тип «На веб-сервере» и указать строку:
http://1.2.3.4/my_base
Если же вы настроили проброс с нестандартного порта (например, внешний порт 8080 проброшен на внутренний 80), адрес изменится на:
http://1.2.3.4:8080/my_base
Важно понимать, что передача данных по протоколу HTTP небезопасна — пароли передаются практически в открытом виде. Рекомендуем настроить работу через HTTPS. Для этого потребуется:
Let's Encrypt).mod_ssl.Только после настройки шифрования работу через открытый интернет можно считать относительно безопасной. Помните также о проверке «белизны» вашего IP: если адрес начинается на 10.x.x.x или 192.168.x.x, он является «серым», и прямое подключение без VPN будет невозможно, даже если провайдер называет его статическим.