|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
||||||||||||||||||||||||||||||||||||
Не запускаются контейнеры с nginx и aiohttp для бэка в подпроекте22.01.2024, 14:39. Показов 1633. Ответов 11
Метки нет (Все метки)
Доброго времени суток. Пробую научиться работать со сложной структурой проекта на пайтон, где есть бэкенд и фронт. Для начала хочу создать html-заглушку для фронта и вывод json для бэка, а потом уже добавлять роуты, вьюшки, БД и прочее.
Фронт в контейнере поднимается, заглушка работает, изменения руками в заглушке отображаются. А для бэка создал простейший файл пайтона с выводом приветствия в формате json, типа: "Привет, мир". Этот файлик работает в плоском проекте, а при помещении его в этот проект, страница не отвечает. По идее должен быть localhost:8081 (в плоском отвечает на 8080) Вот такой файлик пайтона (main.py): Кликните здесь для просмотра всего текста
Вот такая структура проекта: Кликните здесь для просмотра всего текста
Вот такой default.conf для бэка Кликните здесь для просмотра всего текста
Вот такой Докерфайл для Nginx для бэка Кликните здесь для просмотра всего текста
ВОт такой Докерфайл для AIOHTTP в бэке Кликните здесь для просмотра всего текста
файл зависимостей для бэка: Кликните здесь для просмотра всего текста
Вот такой докер-композ файл: Кликните здесь для просмотра всего текста
Скорее всего нупутал с путями в конфиге, но не пойму где что и почему.
0
|
||||||||||||||||||||||||||||||||||||
| 22.01.2024, 14:39 | |
|
Ответы с готовыми решениями:
11
Ansible role для устаноки и настройки nginx конкретной версии из репозиториев Nginx Доступ ресурса одного подпроекта в другом подпроекте Архитектура бэка |
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 22.01.2024, 17:06 | |
|
не понимаю идею с двумя nginx отдельными, поэтому спрошу первое что бросилось в лицо -
питоновый скрипт должен слушать на 8080 или 8081? сейчас на 8080 web.run_app(app, port=8080)
0
|
|
|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
||||||||
| 22.01.2024, 17:15 [ТС] | ||||||||
Но в любом случае, что-то у меня даже один этот файл не получилось поместить в контейнер. Видать совсем запутался, хотя перед этим делал такое, вот и решил сделать следующий шаг
0
|
||||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||||||
| 22.01.2024, 17:42 | ||||||
Сообщение было отмечено DyadyaGe как решение
Решение
для api-aio контекст - api/
в Докерфайл для AIOHTTP:
1
|
||||||
|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
|||||||
| 22.01.2024, 19:33 [ТС] | |||||||
0
|
|||||||
|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
||||||||||||||||||||||||||||||
| 23.01.2024, 14:59 [ТС] | ||||||||||||||||||||||||||||||
|
И из всего этого вытекает ещё один вопрос, который касается вашего интереса про Новая структура выглядит так: Кликните здесь для просмотра всего текста
Файл api.conf Кликните здесь для просмотра всего текста
Файл frontend.conf Кликните здесь для просмотра всего текста
Докерфайл из этого каталога: Кликните здесь для просмотра всего текста
И измененный докер-композе файл: Кликните здесь для просмотра всего текста
В таком виде все ещё заходит по локалхост, но не хочет ходить по имени сервиса, тоесть по http://frontend и http://api Может, конечно я в корне не прав и такое не может вообще работать, в смысле идея не правильная, не реализуемая. Но вроде Nginx всего навсего служит для проксирования, тоесть перенаправления, типа роутера можно сделать.
0
|
||||||||||||||||||||||||||||||
|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
|
| 23.01.2024, 21:57 [ТС] | |
|
Могу добавить, что контейнеры (сервисы) пингуются из моей сети. Адреса подсмотрел с помощью docker inspect
Правда, немного не точно. Если войти внутрь контейнера Гетвей, то пингуется вся докеровская сеть, а если с моего ПК, то пингуется только два адреса. Докеровский гетвей (не мой) и апи. Докеровский гетвей висит на 172.27.0.1. Гетвей висит на 172.27.0.5, апи на 172.27.0.2, а фронтенд 172.27.0.3. И как я говорил, внутри сети все пингуется по имени сервисов, а из моей сети только по адресу, не по имени.
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 24.01.2024, 19:07 | |
|
так не только можно, так обычно и бывает. nginx действует в роли reverse proxy к разным сервисам.
вы общаетесь со своим сервисом через nginx -> фронтенд, c апи nginx (тот же) -> апи, между собой сервисы могут общаться напрямую. Добавлено через 12 минут если нужно обращаться к nginx из хоста по имени, можно добавить запись в /etc/hosts Добавлено через 5 минут если вручную добавлять не охота или нужно добавлять много или часто, можно использовать что-то типа https://github.com/mageddo/dns-proxy-server для обращения к контейнерам по имени из хоста, но в проде это будет работать скорее всего через более центральный днс
0
|
|
|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
||||
| 27.01.2024, 10:52 [ТС] | ||||
|
0
|
||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||||||||||||||||||||||||
| 27.01.2024, 18:50 | ||||||||||||||||||||||||
![]() Заглянем в контейнер (еще ваш не удалил)
0
|
||||||||||||||||||||||||
|
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
|
||||||||
| 28.01.2024, 00:50 [ТС] | ||||||||
|
Кстати, пробовал с этим разобраться с помощью логов докера-композ Кликните здесь для просмотра всего текста
0
|
||||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||
| 28.01.2024, 01:24 | ||
|
Если стоит, то в Вашем случае проблем две - 1) замена адресов на имена, значит где-то нужно определить соответствие, как я упоминал уже выше - это можно сделать например в /etc/hosts 2) замена портов, тут все сложнее, можно попробовать извратиться с iptables, например в /etc/hosts маппинг frontend -> 127.0.0.100 api -> 127.0.0.200 в iptables dnat+dpat 127.0.0.100:80 --> 172.27.0.3:8080 127.0.0.200:80 --> 172.27.0.2:8081 если хотите - разбирайтесь как ![]() Я бы этой бородой не занимался и ко всему обращался через один nginx reverse proxy в /etc/hosts: frontend --> 172.27.0.5 а дальше маршрутизация средствами самого прокси - http://server - к переду, http://server/api - к заду.
0
|
||
| 28.01.2024, 01:24 | |
|
Помогаю со студенческими работами здесь
12
Контейнеры для изображений Реализация алгоритма Кируса-Бэка Внешние контейнеры для HDD Cвязка Nginx-Nginx как ограничить доступ к бэкэнду? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|