Linux за българи: Форуми

BSD секция => Настройки на софтуер => Темата е започната от: tritonchev в Aug 09, 2019, 21:10



Титла: docker containers
Публикувано от: tritonchev в Aug 09, 2019, 21:10
Здравейте,

Нов съм в начинанието с докер. Имам въпрос :

Като съм в вдигнал Nginx+Letsencrypt с docker-compose, как може всеки нов контейнер който инсталирам да е обвързан с SSL на домейна. Предпоlагам с reverse proxy , но как да го направя. Някой да има guide Или да ме насочи къде да потърся.  Искам да стане така да достъпвам отделен контейнер ----  https://container_name.example.com   

Благодаря предварително


Титла: Re: docker containers
Публикувано от: ray в Aug 10, 2019, 20:06
Здравей,

Не е много ясно къде ще се деплойват тези контейнери ?
AWS, Google, Azure или някъде другаде.
Има значение тъй като може да има Loadbalancer и на него да е сертификата.

Отделно на един хост може да се пуснат много контейнери и ако има идентични решението ще бъде друго и т.н.
Всъщност ако са идентични трябва да слушат на различни портове.

Във AWS лоудбалансърите са класически и приложен, пак има разлика при настройването им.


Титла: Re: docker containers
Публикувано от: nslave в Aug 11, 2019, 11:57
И аз не съм много в час с тези неща, но последно като съм гледал мисля, че се правеше с wildcard сертификат на host-a и след това монтиране на файловете със сертификатите в контейнера. Това ако не се мъчиш да балансираш каквото и да било де, ами са си отделни неща. Другият вариант, който се сещам е без wildcard, ами всеки контейнер да си има монтирана главната папка на letsencrypt от хоста и да си се грижи сам за обновяването.

Иначе за reverse proxy, често срещам да споменават Traefik, но как точно се използва нямам идея.


Титла: Re: docker containers
Публикувано от: ray в Aug 11, 2019, 15:15
В първия отговор дадох някаква общо взето по-обща информация, мързеше ме пък и не бях проверил това онова. Не съм и разработчик  ;)

Имах предвид 2-3 неща, първо че ако се използва Loadbalancer е лесно да се сложи един wildcard сертификат на него и толкова.
Връзката между него и отделните машини/контейнери може да бъде със или без криптиране.
Това за сертификата важи и за reverse-proxy-то  :)

Второ ако се ползва application-loadbalancer може да се насочва трафика към определена машина на база на поддомейна за който е заявката.

Трето, може да се използва и session-persistance и заявките да отиват към една и съща машина. Това ако се използва класически лоудбалансър.

Другия вариант е да се вдигне едно reverse-proxy (нямам идея кое е най-добро) и от него според заявките те да се насочват към дадената машина/контейнер - поддомейн.
Нямам опит с подобна конфигурация, вероятно може да стане с четене и ровене  :o

Ето някакъв линк който излезе първи:
https://www.nginx.com/resources/glossary/reverse-proxy-vs-load-balancer/


Титла: Re: docker containers
Публикувано от: tritonchev в Aug 12, 2019, 14:00
На домашният ubuntu сървър искам да го кача, гледам ползват това jwilder/nginx-proxy, но ще си поиграя за да го подкарам.


Титла: Re: docker containers
Публикувано от: growchie в Aug 14, 2019, 15:42
Не слагай сертификати в контейнера, безпредметно е. По-добре настрой едно фронт енд прокси което да ти поема нещата по https, и просто апа ти вътрешно да продължава по стандартен http. Щом трафика ти няма да напуска локалната машина не е бела.
letsencrypt няма как да пуснеш автоматично в контейнер, понеже това противоречи на философията на докер - един контейнер един процес. На теб ще ти трябва крон + някакъв сървис и ще трябва да си пишеш свой инит скрипт който да пали и двете. В докер контейнера нямаш init/systemd.

Докер компоузър не съм ползвал, пиша си докер файловете на ръка. За това което ми говориш по-скоро става въпрос за kubernetes или docker swarm решение. Чист докер който вдига един контейнер без лоуд балънсър ми се струва излишно да правиш проксита.
Не си обяснил какво точно искаш да правиш за да ти дам по-точна информация.


Титла: Re: docker containers
Публикувано от: tritonchev в Aug 14, 2019, 16:47
Пример:

Инсталиран portainer, guacamole, plex и т.н (с докер). Достъпът от вън да бъде https://plex.example.com. guacamole.example.com, plex.example.com. като имам активен домейн.


Титла: Re: docker containers
Публикувано от: growchie в Aug 15, 2019, 08:36
Така както го мислиш и ми го обясняваш няма как да стане. Базовото айпи на всички поддомейни ще е едно и също, само портовете на които ще са достъпни услугите ще са различни (предполагам, че имаш само 1 публичен адрес). Летсенкрипт не ти позволява да имаш * сертификати, така че правилното нещо е да направиш сертификат за example.com и да правиш редикеркт с мод прокси към example.com/prex, example.com/portainer и т.н. Специално за портейнъра има инфо как да вкараш сертификат в контейнера https://portainer.readthedocs.io/en/stable/deployment.html#secure-portainer-using-ssl


Титла: Re: docker containers
Публикувано от: 10101 в Aug 15, 2019, 09:14
Здравейте,

С това не съм съгласен:

"Летсенкрипт не ти позволява да имаш * сертификати,"

На една машина с 1 ип може да имаш повече от 1 сертификат от летс.


Титла: Re: docker containers
Публикувано от: growchie в Aug 15, 2019, 09:44
Ти може да имаш и 1000 ама уеб сървърът ти ще ползва само 1 реално. Това за * от летсенкрипт съм го пропуснал гледам че го има от година някъде.


Титла: Re: docker containers
Публикувано от: VhgErr0r в Feb 24, 2022, 12:39
Здравей, ето ти нещо което съм правил аз и работи.

https://upload.bg/?file=62176043127d9 pass 1029384756

Здравейте,

Нов съм в начинанието с докер. Имам въпрос :

Като съм в вдигнал Nginx+Letsencrypt с docker-compose, как може всеки нов контейнер който инсталирам да е обвързан с SSL на домейна. Предпоlагам с reverse proxy , но как да го направя. Някой да има guide Или да ме насочи къде да потърся.  Искам да стане така да достъпвам отделен контейнер ----  https://container_name.example.com   

Благодаря предварително