Conversation
Двенадцатая и тринадцатая развёртки: веб-сервер на отдельной машине и веб-сервер в контейнере. Интересны они тем, что раннер в них команду теряет, а не приобретает. Всё решает одно свойство, которое на странице до сих пор было сказано только вскользь: 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. Серая рамка взята из уже существующей палитры, чтобы тёмная тема её подменяла.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Зачем
Одиннадцать развёрток описывали случаи, где веб-сервер стоит на машине раннера. Но он нередко вынесен — на отдельный сервер или в контейнер, — и тогда меняется не протокол, а то, что раннер вообще может сделать.
Что добавлено
12. Веб-сервер на отдельной машине и 13. Веб-сервер в контейнере. Оба интересны тем, что раннер в них команду теряет, а не приобретает.
Всё решает одно свойство, которое на странице до сих пор было сказано только вскользь:
publish— локальный процесс.webinstраннер запускает у себя, и оба пути в его аргументах открываются на его файловой системе —-dir(каталог публикации) и-confpath(конфиг веб-сервера). Валидация отказывает ещё до запуска, еслиdirне существующий каталог (validate.rs:815).Поэтому варианты делятся не по тому, где стоит веб-сервер, а по тому, что из его файловой системы видно раннеру:
publishinfobase.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, кода не касается.