Skip to content

docs(site): два варианта, где веб-сервер стоит отдельно - #147

Open
zeegin wants to merge 1 commit into
masterfrom
claude/site-web-server-variants
Open

zeegin wants to merge 1 commit into
masterfrom
claude/site-web-server-variants

Conversation

@zeegin

@zeegin zeegin commented Sep 16, 2026

Copy link
Copy Markdown
Member

Зачем

Одиннадцать развёрток описывали случаи, где веб-сервер стоит на машине раннера. Но он нередко вынесен — на отдельный сервер или в контейнер, — и тогда меняется не протокол, а то, что раннер вообще может сделать.

Что добавлено

12. Веб-сервер на отдельной машине и 13. Веб-сервер в контейнере. Оба интересны тем, что раннер в них команду теряет, а не приобретает.

Всё решает одно свойство, которое на странице до сих пор было сказано только вскользь: publish — локальный процесс. webinst раннер запускает у себя, и оба пути в его аргументах открываются на его файловой системе — -dir (каталог публикации) и -confpath (конфиг веб-сервера). Валидация отказывает ещё до запуска, если dir не существующий каталог (validate.rs:815).

Поэтому варианты делятся не по тому, где стоит веб-сервер, а по тому, что из его файловой системы видно раннеру:

видно раннеру publish
ничего невозможен; infobase.web.url объявляется вручную, а launch web и launch thin --via web работают — публикации им не нужно
каталог публикации проходит у apache24 и iis — им conf необязателен (model.rs:194); у apache2 и apache22 валидация откажет
каталог и конфиг отработает целиком, но webinst запишет пути так, как их видит раннер, а читать их будет веб-сервер — совпадут только при одинаковом монтировании

Отдельно названа ловушка, которая не про веб-сервер, а про базу: default.vrd несёт строку подключения. У кластерной это сетевой адрес — контейнер работает нормально. У файловой это путь к каталогу, и веб-сервер обязан видеть его по тому же пути, что записан в vrd; внутри контейнера он другой, поэтому такая связка не живёт.

Проверено

  • Обе схемы отрисованы и просмотрены локально; тёмная тема применяется — серая рамка взята из уже существующей палитры (#eeeef0 / #a8a8b0), а не придумана новая, иначе подмена цветов её бы не поймала.
  • Проверено скриптом, что все цвета новых схем покрыты таблицей подмены тёмной темы.
  • Оглавление вариантов и вводная фраза («тринадцать развёрток») обновлены.

Только docs/site/architecture.html, кода не касается.

Двенадцатая и тринадцатая развёртки: веб-сервер на отдельной машине и веб-сервер в
контейнере. Интересны они тем, что раннер в них команду теряет, а не приобретает.

Всё решает одно свойство, которое на странице до сих пор было сказано только вскользь:
publish — локальный процесс. webinst раннер запускает у себя, и оба пути в его
аргументах открываются на его файловой системе: -dir — каталог публикации, -confpath —
конфиг веб-сервера. Валидация отказывает ещё до запуска, если dir не существующий
каталог (src/config/validate.rs:815).

Поэтому варианты делятся не по тому, где стоит веб-сервер, а по тому, что из его
файловой системы видно раннеру:

- не видно ничего — publish невозможен; база администрируется по строке подключения,
  infobase.web.url объявляется вручную, а launch web и launch thin --via web работают,
  потому что публикации им не нужно
- виден каталог публикации — publish проходит у apache24 и iis: им conf необязателен
  (src/config/model.rs:194). У apache2 и apache22 валидация откажет
- видны каталог и конфиг — webinst отработает целиком, но запишет пути так, как их видит
  раннер, а читать их будет веб-сервер: совпадут только при одинаковом монтировании

Отдельно названа ловушка, которая не про веб-сервер, а про базу: default.vrd несёт строку
подключения. У кластерной это сетевой адрес, и контейнер работает нормально; у файловой —
путь к каталогу, и веб-сервер обязан видеть его по тому же пути, что записан в vrd.

Серая рамка взята из уже существующей палитры, чтобы тёмная тема её подменяла.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant