Я хочу, чтобы мой хост dokku запускал основной nginx для моего домена (скажем, cooldok.ku
).
На cooldok.ku по некоторым причинам у меня есть другие виртуальные машины, раздающие контент. Я хочу выставить этот контент на субдомен (скажем, vm.cooldok.ku
, работает на виртуальной машине с адресом 10.0.0.7 на хосте cooldok.ku).
Я понял, что используемая методология называется обратным прокси.
В оптимальном мире был бы способ зарегистрировать и «связать» / проксировать поддомены только для dokku. В качестве дополнительного бонуса хост cooldok.ku
сам выполнял ssl-вещи для https (например, ssltunnel), чтобы я мог использовать существующие сертификаты и/или использовать отличный letsencrypt на той же машине и защищать приложения на виртуальной машине, которые не предназначались для обслуживаться через https.
Как можно реализовать этот сценарий с докку? Насколько сложно было бы написать плагин, делающий это?
Обновить
Итак, в основном dokku (0.8) оснащен всем, что ему нужно. Вопрос в том, сколько из того, чего хочет достичь dokku (запустить эти вкусные докер-контейнеры), находится на пути. Чтобы взломать установку, которая делает то, что я хочу, можно сделать следующее:
# create folder where we want it
dokku apps:create vm
Теперь эти файлы должны быть созданы/присутствовать (установка dokku vanilla 0.8)
#/home/dokku/vm/DOCKER_OPTIONS_DEPLOY
--restart=on-failure:10
#/home/dokku/vm/IP.web.1
10.0.0.7
#/home/dokku/vm/PORT.web.1
80
#/home/dokku/vm/URLS
# THIS FILE IS GENERATED BY DOKKU - DO NOT EDIT, YOUR CHANGES WILL BE OVERWRITTEN - I did it nonetheless
http://vm.cooldok.ku
#/home/dokku/vm/VHOST
vm.cookdok.ku
#/home/dokku/vm/nginx.conf
# Just listing changes from another default app
[...]
proxy_pass http://vm-host;
[...]
upstream vm-host {
server 10.0.0.7:80;
}
После этого nginx нуждается в ручном перезапуске (или... dokku может что-то сделать для нас здесь)
Я почти уверен, что часть (избыточной) информации можно опустить, так как dokku, например, должен озадачить сам nginx.conf. Я не уверен, что эта установка выдержит перезагрузку/перезапуск nginx. Кроме того, во время тестов letsencrypt не позволял мне установить сертификаты/перестроить конфигурацию nginx, потому что он видит, что приложение vm
не развернуто.
Обновление 2
Чтобы преодолеть проблему «приложение не развернуто», достаточно touch /home/dokku/vm/CONTAINER
, но это становится все запутаннее и запутаннее ...