Anthony
через traefik тоже пока не выходит
Yuriy
выкинуть секцию что я написал выше, прописать вот такого вида
Yuriy
location / {
proxy_pass http://wildfly:8080;
add_header Access-Control-Allow-Origin *;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location /websocket {
proxy_pass http://wildfly:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /glonass {
proxy_pass http://nodered:1880;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Yuriy
кусок конфига с боевого контейнера
Yuriy
ну и прописывать это все не в nginx.conf а в vhost.conf
Yuriy
или в default.conf
Anthony
один вопрос, что мне прописывать в proxy_pass?
имя контейнера ? У меня ведь везде nginx container, но выводит в списке уже по имени директории
Anthony
погуглив нашел что надо использовать внутренний ip контейнера
Yuriy
да имя как в docker-compose.yml
Yuriy
compose файл в студию
Dmitry
Compose же вроде обеспечивает сетевую связанность
Yuriy
т.е запускаете из разных композ файлов?
Anthony
да
Anthony
они связаны network
Yuriy
ну как минимум имена сервисам разные дать
Yuriy
доступны они через dns будут все равно по имени которое в композ файле прописано
Yuriy
docker ps что выдает?
Anthony
Yuriy
Anthony
Yuriy
в вашем случае traefik будет лучше
Anthony
говорят он под прод не готов еще(
Yuriy
т.к он по labels'ам умеет
Yuriy
общая схема такова Кучка Контейнеров—->Traefik—-»Nginx который смотрит в инет
Yuriy
в таком случае на nginx'е прописать один локешн на traefik
Yuriy
хотя traefik вполне себе годная прокся
Anthony
вроде понял но переспрошу,
дата контейнер с портом 80,443
прокси ведет на порт 19999 traefik
тот уже переводит на те контейнеры которые нужно?
Yuriy
да вам одного traefik хватит на все контейнеры
Anthony
у меня сейчас в label у сервиса прописано - - "traefik.frontend.rule=Host:core.localhost"
а мне нужно чтобы переходило c /api
Мне тут прописать localhost:port/api верно?
Yuriy
Anthony
все же не могу настроить нормально traefik
мои шаги
1) запустил дата контейнер и открыл 80/443
2) изменил nginx.conf
location /
location /api proxy_pass http://nginx:19999;
location /media proxy_pass http://nginx:19999;
3) запустил traefik на 19999 порту
4) добавил label сервисам
5) запустил сервисы
где ошибка может быть?
Anthony
debug = true
checkNewVersion = true
logLevel = "ERROR"
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":19999"
[retry]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "localhost"
watch = true
exposedbydefault = false
Anthony
это конфиг traefik
Maxim
Anthony
У меня развернут фронт статично в nginx контейнере, он запрашивает данные с Апи и с медиа сервиса. Оба сервиса развёрнуты отдельно со своими докеркомпоз файлами.
Anthony
Моя задача чтобы фронт мог получить эти данные
Maxim
Maxim
Anthony
Maxim
Anthony
Мне выше подсказали не открывать публично traefik порты
Maxim
зачем он тебе тогда?
Maxim
зачем он тебе в этой схеме?
Anthony
Maxim
Anthony
У меня несколько микросервисов, в которых свой nginx
Maxim
смысл в traefik если сам nginx может решить что куда направлять
Maxim
Denis
Maxim
Вероятно во встроенной интеграции с sd
ок, давай еще раз с начала. Расскажи какую задачу тебе нужно решить?
1) есть nginx с каким то приложением. Каким? lua? php?
2) nginx направляет запросы к traefik для обращения к двум сервисам которые стоят за traefik. Верно?
3) ...
Anthony
Это только 2 сервиса, а у меня их 7
Anthony
В каждом свои процессы
Anthony
Вообще я пытался выше решить через nginx , но мне опять подсказали что лучше traefik использовать
Anthony
Сейчас решаю задачу запросить данные из двух php сервисов
Denis
Нгинкс может выступать базовым ингресом, направляет на некий сервис а за списком апстримов, редиректами и остальным 'апликейшн роутингом ' уже следит траеф который сервится как часть сервиса.
Dan
Я, например, так на трaeфик не перешёл, и продолжаю пользуваться реверс прокси nginx. Но, должен сказать, что мне этого более чем достаточно для моих скромных задачек.
Anthony
В жата контейнере собран фронт статикой и нужно чтобы все запросы шли на него, а сам js уже шёл на /API и /media
Denis
Получаем слабый контракт между командами. Что есть круто
Anthony
Denis
Denis
Это больше организационная задача чем техническая
Maxim
На скриншоте видно что запущено пару композиций и несколько внешних сервисов и наверное тебе нужно их подружить как то, верно?
Anthony
Anthony
Друг с другом они тоже работают
Anthony
Но фронт не работает с ними ещё
Maxim
Anthony
Я добавлял в одну сеть
Anthony
И для traefik тоже
Anthony
Да все добавлял
Maxim
Тогда зачем тебе порты?))) Обращайся по именам сервисов
Anthony
У меня в каждой композиции есть nginx, и у него дефолтное имя "nginx"