а фронт на nginx в другом. Nginx еще и проксирует запросы в бэк если запрос начинантся на /api/. Оба контецнера бегут внутри одного компоуза. Так вот. Angular приложение на фронте чтобы работало я в нем в роутинге прописал прямые адреса типа https://mysite/login. И на мой взглял это как то странно, кажется проще было бф обращаться по имени контейнера со спрингом типа backend:8081/login ... но почему то у меня так не работает. Подскажите, как все же правильно? И как это выглядит на уровне фронта и nginx.
если в docker-compose.yml у тебя есть serivce: nginx, а у него файл конфигурации с upstream site { server http://backend:8081 } то все должно работать, просто внешний nginx (на хосте с docker-compose) с upstream site { server http://127.0.0.1:8088 } указывает на docker, с expose 8088:80 для сервиса nginx внутри, а уже nginx внутри может использовать названия сервисов докерфайла напямую, так как будет их видеть (из-за встроенного в docker DNS resolver-а)
у тебя ангуляр крутится на клиенте, а не на сервере, соответственно, какие имена контейнера, если рутинг ангуляра это клиентский рутинг, а все что вне докера не увидит имена внутри докера
А почему бы просто не пробросить АПИ на локалхост и слать запросы из ангулар ( localhost:4200 ) на api ( localhost:8081) ? Если, конечно, как заметили выше, ты писал про запросы к АПИ, а не роутинг
Обсуждают сегодня