Обновление конфигурации файлов подключения для 1С:Предприятие и настройка Apache для корректной работы с веб-публикацией
This commit is contained in:
+19
-10
@@ -1,10 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
base="/BuhBase"
|
||||
ib="Srvr=192.168.10.195;Ref=УПФ"
|
||||
enableStandardOData="true">
|
||||
<ws publishExtensionsByDefault="true" />
|
||||
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||
</point>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Файл подключения к информационной базе 1С:Предприятие.
|
||||
ОТРЕДАКТИРУЙТЕ перед установкой приложения, указав:
|
||||
- адрес или DNS-имя сервера 1С:Предприятие в атрибуте `Srvr` (через `;` можно несколько узлов кластера),
|
||||
- имя информационной базы в атрибуте `Ref`.
|
||||
Если сервер 1С отвечает клиенту по DNS-имени, не разрешаемому из контейнера,
|
||||
дополнительно пропишите соответствия имя → IP в `web-1c/docker-compose.yml`,
|
||||
секция `server.extra_hosts`.
|
||||
-->
|
||||
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
base="/app-web-1c/BuhBase"
|
||||
ib="Srvr=192.0.2.1;Ref=YourInfoBase"
|
||||
enableStandardOData="true">
|
||||
<ws publishExtensionsByDefault="true" />
|
||||
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||
</point>
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
@@ -16,9 +14,22 @@ services:
|
||||
stop_grace_period: 1m
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/vrd/default.vrd:/usr/local/apache2/htdocs/BuhBase/default.vrd:ro
|
||||
# Сервер 1С:Предприятие может отвечать клиенту DNS-именем рабочего процесса
|
||||
# (например, srv-1c), которое не разрешается из контейнера, даже если в default.vrd
|
||||
# стоит IP. Прописываем соответствие имя → IP для всех узлов кластера 1С.
|
||||
# Поправьте список под вашу сеть.
|
||||
extra_hosts:
|
||||
- "srv-1c:192.168.10.195"
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# При необходимости разкомментируйте и пропишите соответствия имя → IP
|
||||
# для УЗЛОВ КЛАСТЕРА 1С (рабочего процесса rphost, агента ragent и т.п.).
|
||||
#
|
||||
# Это нужно, когда сервер 1С отвечает клиенту по DNS-имени
|
||||
# (например, "srv-1c"), которое не разрешается из контейнера —
|
||||
# даже если в default.vrd указан IP. Без таких записей клиент 1С
|
||||
# упадёт с ошибкой "Temporary failure in name resolution".
|
||||
#
|
||||
# Имена должны совпадать с теми, что 1С возвращает в ответах
|
||||
# (часто это hostname машины с сервером 1С). IP укажите свой.
|
||||
#
|
||||
# Этот файл редактируется ПОСЛЕ установки приложения, в каталоге
|
||||
# ~/dfwebos-data/app-data/web-1c/docker-compose.yml — там же
|
||||
# лежит данная подсказка.
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# extra_hosts:
|
||||
# - "srv-1c:192.0.2.10"
|
||||
|
||||
+16
-10
@@ -1,10 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
base="/BuhBase"
|
||||
ib="Srvr=192.168.10.195;Ref=УПФ"
|
||||
enableStandardOData="true">
|
||||
<ws publishExtensionsByDefault="true" />
|
||||
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||
</point>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Дефолтный файл подключения к информационной базе 1С.
|
||||
Этот файл «зашит» в образ и используется только если пользователь не подменил его
|
||||
через том ${APP_DATA_DIR}/data/vrd/default.vrd. Поэтому здесь — нейтральные плейсхолдеры.
|
||||
Реальные параметры подключения пользователь задаёт в data/vrd/default.vrd.
|
||||
-->
|
||||
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
base="/app-web-1c/BuhBase"
|
||||
ib="Srvr=192.0.2.1;Ref=YourInfoBase"
|
||||
enableStandardOData="true">
|
||||
<ws publishExtensionsByDefault="true" />
|
||||
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||
</point>
|
||||
|
||||
@@ -192,7 +192,7 @@ LoadModule dir_module modules/mod_dir.so
|
||||
#LoadModule speling_module modules/mod_speling.so
|
||||
#LoadModule userdir_module modules/mod_userdir.so
|
||||
LoadModule alias_module modules/mod_alias.so
|
||||
#LoadModule rewrite_module modules/mod_rewrite.so
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
|
||||
<IfModule unixd_module>
|
||||
#
|
||||
@@ -560,8 +560,36 @@ SSLRandomSeed connect builtin
|
||||
|
||||
LoadModule _1cws_module /opt/1cv8/x86_64/8.3.23.1912/wsap24.so
|
||||
|
||||
# 1c publication
|
||||
Alias "/BuhBase" "/usr/local/apache2/htdocs/BuhBase/"
|
||||
# ───────────────────────────────────────────────────────────────────────────
|
||||
# 1С web-публикация под префиксом DFWebOS-прокси `/app-web-1c/BuhBase/`.
|
||||
#
|
||||
# Архитектура запроса:
|
||||
# браузер → /app-web-1c/BuhBase/X
|
||||
# DFWebOS-прокси → стрипает префикс /app-web-1c → Apache видит /BuhBase/X
|
||||
# ↓
|
||||
# mod_rewrite внутренне ПРИДОБАВЛЯЕТ префикс обратно: /BuhBase/X → /app-web-1c/BuhBase/X
|
||||
# ↓
|
||||
# 1С-handler по пути /app-web-1c/BuhBase/* читает default.vrd и видит совпадение
|
||||
# с base="/app-web-1c/BuhBase". URL-ы, которые он генерирует в HTML/JS, тоже
|
||||
# получают этот префикс — браузер их правильно проксирует обратно.
|
||||
#
|
||||
# Зачем такая схема: 1С-handler формирует <base href="..."> и абсолютные пути
|
||||
# из атрибута `base` в default.vrd. Если бы base="/BuhBase", все ссылки 1С
|
||||
# в HTML стали бы корне-привязанными `/BuhBase/...`, в обход DFWebOS-прокси,
|
||||
# и попадали бы в SPA-fallback DFWebOS (404).
|
||||
# ───────────────────────────────────────────────────────────────────────────
|
||||
|
||||
# Внутренний rewrite: приклеиваем префикс /app-web-1c обратно перед 1С-handler.
|
||||
# [PT] (passthrough) обязателен, чтобы Apache повторно прогнал URL через Alias/Location.
|
||||
<IfModule rewrite_module>
|
||||
RewriteEngine On
|
||||
# Не перезаписываем то, что уже под префиксом (защита от циклов)
|
||||
RewriteCond %{REQUEST_URI} !^/app-web-1c/
|
||||
RewriteRule ^/BuhBase(/.*)?$ /app-web-1c/BuhBase$1 [PT,L]
|
||||
</IfModule>
|
||||
|
||||
# 1С-handler привязан к публичному префиксу — совпадает с base в default.vrd.
|
||||
Alias "/app-web-1c/BuhBase" "/usr/local/apache2/htdocs/BuhBase/"
|
||||
<Directory "/usr/local/apache2/htdocs/BuhBase/">
|
||||
AllowOverride All
|
||||
Options None
|
||||
@@ -570,11 +598,9 @@ Alias "/BuhBase" "/usr/local/apache2/htdocs/BuhBase/"
|
||||
ManagedApplicationDescriptor "/usr/local/apache2/htdocs/BuhBase/default.vrd"
|
||||
</Directory>
|
||||
|
||||
# Перехватываем ВСЕ запросы под /BuhBase (включая /BuhBase/ru_RU/BuhBase/?...
|
||||
# Location перехватывает ВСЕ подпути (включая /app-web-1c/BuhBase/ru_RU/BuhBase/?...
|
||||
# которые 1С генерирует для внешних ссылок и перезапуска клиента).
|
||||
# Location работает по URL, а не по файловой системе — поэтому не возвращает 404
|
||||
# на несуществующие подпути, а отдаёт всё в 1c-application handler.
|
||||
<Location "/BuhBase">
|
||||
<Location "/app-web-1c/BuhBase">
|
||||
SetHandler 1c-application
|
||||
ManagedApplicationDescriptor "/usr/local/apache2/htdocs/BuhBase/default.vrd"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user