Веб-публикация
Выберите вариант по расположению базы и утилит. Обозначения схем и настройки файлов проекта описаны отдельно.
Файловая база и веб-сервер
Файловая база и веб-сервер Apache или IIS на одной машине с раннером. У базы два адреса: по файловому пути её администрируют и открывают Конфигуратором, толстым и тонким клиентом, по HTTP — открывают веб-клиентом и тем же тонким клиентом.
Конфигурация
Основной файл v8project.yaml описывает исходники на машине раннера.
workPath: .build # журналы и временные файлы; можно удалить
format: DESIGNER # исходники в формате платформы
source-set:
- name: main # локальное имя набора
type: CONFIGURATION # основная конфигурация
path: src/cf # путь от каталога v8project.yaml
v8project.local.yaml рядом с основным файлом:
infobases:
origin:
connection: "File=/srv/ib/demo" # общий путь для раннера и веб-сервера
web:
server: apache22 # Apache 2.2 на машине раннера
wsdir: demo # виртуальный каталог
dir: /var/www/demo # существующий каталог публикации
conf: /etc/apache2/apache2.conf # конфигурация локального Apache
url: "http://localhost/demo" # адрес для клиента
Apache и раннер установлены на одной машине и видят базу /srv/ib/demo. После publish адрес http://localhost/demo открывает базу через веб-сервер. Для Apache 2.4 укажите apache24; conf для него необязателен.
Кластер с веб-публикацией — через кластер
Кластерная база, опубликованная на Apache или IIS. Веб-сервер держит подключение к кластеру по сети; файловый доступ к базе ему не нужен.
В YAML задана только connection: Конфигуратор и агент подключаются через кластер. Прямой канал ibcmd к СУБД не используется.
Конфигурация
Используйте тот же v8project.yaml, что в первом варианте этой страницы. Меняется локальный файл.
v8project.local.yaml рядом с основным файлом:
infobases:
origin:
connection: "Srvr=srv:1541;Ref=demo" # кластер на сервере приложений
web:
server: apache24 # веб-сервер на машине раннера
wsdir: demo # виртуальный каталог
dir: /var/www/demo # существующий каталог публикации
conf: /etc/apache2/apache2.conf # конфигурация локального Apache
url: "http://localhost/demo" # HTTP-адрес на машине раннера
Раннер и Apache стоят вместе; srv — отдельная машина с кластером. Веб-серверу нужен сетевой доступ к кластеру. База demo зарегистрирована заранее, каталог /var/www/demo существует.
Возможности операций — на странице Компоненты.
Прямой доступ ibcmd к СУБД не зависит от веб-публикации. Схема и настройка — в разделе «На другой машине, кластер остановлен».
Кластер с готовой веб-публикацией
База уже опубликована на Apache или IIS. Публикацией управляют вне раннера; раннер открывает браузер или тонкий клиент по её адресу.
Конфигурация
Используйте тот же v8project.yaml, что в первом варианте этой страницы. В v8project.local.yaml задайте адрес готовой публикации:
infobases:
origin:
connection: "Srvr=srv:1541;Ref=demo" # операции с базой через кластер
web:
url: "https://web.example/demo" # готовая веб-публикация
v8-runner launch web # открыть в браузере
v8-runner launch thin --via web # открыть тонким клиентом по HTTP
В этой конфигурации недоступны web publish и web publish --delete: параметры управления публикацией не заданы. Строка connection остаётся для операций с базой через кластер и не заменяется веб-адресом.
Управление публикацией на отдельном веб-сервере
webinst запускается на машине раннера. Для web publish каталог публикации должен быть доступен раннеру; для Apache 2.0 и 2.2 также нужен файл конфигурации.
Если каталог публикации смонтирован на машине раннера, можно задать параметры server, wsdir и dir. Для apache24 и iis поле conf необязательно; для apache2 и apache22 оно обязательно.
При монтировании каталога и конфигурации webinst записывает пути так, как их видит раннер. Веб-сервер должен видеть те же пути. Его модуль расширения должен соответствовать версии платформы; доступ к кластеру идёт по TCP, к файловой базе — по пути из default.vrd.
Веб-сервер в контейнере
Apache работает в контейнере на машине раннера. Каталог публикации доступен раннеру и веб-серверу через общий том, смонтированный по разным путям. Раннер обновляет default.vrd; виртуальный каталог и модуль платформы настроены в образе.
Конфигурация
Используйте основной v8project.yaml из примера веб-публикации. Меняется локальный файл.
v8project.local.yaml рядом с основным файлом:
infobases:
origin:
connection: "Srvr=srv:1541;Ref=demo" # адрес кластера, доступный и контейнеру
web:
server: apache24 # Apache 2.4 в контейнере
wsdir: demo # каталог заранее объявлен в образе
dir: /srv/web-publications/demo # том публикации на машине раннера
url: "http://localhost:8080/demo" # HTTP-порт контейнера на хосте
Контейнер веб-сервера запущен на машине раннера. Каталог /srv/web-publications/demo смонтирован в контейнер, а порт HTTP опубликован как 8080. В образе заранее настроены виртуальный каталог demo и модуль платформы. conf отсутствует: publish обновляет default.vrd в общем томе.
Раннер пишет default.vrd по своему пути, а веб-сервер читает тот же файл по пути внутри контейнера. Сетевая строка Srvr=…;Ref=… должна быть доступна из контейнера. Для файловой базы путь из default.vrd должен указывать на ту же базу и быть доступен веб-серверу; одного общего тома публикации недостаточно.
В этом примере apache24 без conf обновляет только default.vrd. Конфигурация Apache остаётся в образе: пути к модулю и виртуальному каталогу внутри контейнера отличаются от путей раннера. Контейнер запущен вне раннера и им не управляется.
Возможности операций — на странице Компоненты.
Две базы, две веб-публикации
В кластере зарегистрированы две разные базы: origin и test. На Apache уже созданы публикации /origin и /test. Их каталоги /var/www/origin и /var/www/test содержат отдельные default.vrd; каждый подключает свою базу.
Конфигурация
Используйте тот же v8project.yaml, что в первом варианте этой страницы. В v8project.local.yaml объявите обе базы:
infobases:
origin:
connection: "Srvr=srv:1541;Ref=origin"
web:
url: "https://web.example/origin"
test:
connection: "Srvr=srv:1541;Ref=test"
web:
url: "https://web.example/test"
v8-runner launch web # origin по умолчанию
v8-runner launch web --infobase test # публикация test
v8-runner launch thin --via web --infobase origin # тонкий клиент: origin
v8-runner launch thin --via web --infobase test # тонкий клиент: test
--infobase выбирает базу вместе с её строкой подключения и веб-адресом. Публикациями управляют вне раннера: в примере заданы только адреса, без параметров web publish.
Одна база, две веб-публикации План
Одна кластерная база demo опубликована на Apache дважды: как /demo и /demo_int. У каждой публикации свой каталог и свой default.vrd; обе подключаются к одной базе Ref=demo. Публичный и внутренний доступ настраиваются в Apache; суффикс _int служит именем публикации.
Настройки и выбор публикации
Именованные публикации задаются в web.publications внутри одной базы. Для двух публикаций не требуется объявлять одну и ту же базу дважды.
# Фрагмент v8project.local.yaml
infobases:
origin:
connection: "Srvr=srv:1541;Ref=demo" # одна информационная база
web:
publications:
demo:
url: "https://web.example/demo"
demo_int:
url: "https://web.example/demo_int"
# Выбор публикации
v8-runner launch web --publication demo
v8-runner launch web --publication demo_int
v8-runner launch thin --via web --publication demo
v8-runner launch thin --via web --publication demo_int
Если публикаций несколько, имя обязательно; неизвестное имя означает ошибку. Единственная публикация выбирается автоматически. Ключ --publication применяется к launch web и launch thin --via web; при прямом подключении к базе и в других режимах он недопустим.
Прежний одиночный блок web сохраняется. В итоговой объединённой конфигурации его поля нельзя смешивать с web.publications. В этом примере заданы только адреса готовых публикаций; web publish и web publish --delete ими не управляют.