Практически вам нужно сделать для API то же самое, что вы сделали для приложения, выставить его через traefik.
В общем, обычно вы хотите, чтобы все внутренние службы вашего кластера были доступны через traefik (или любой другой обратный прокси-сервер), поэтому только traefik - тот, кто должен быть открыт для портов хоста.Все остальные ваши сервисы будут просто зарегистрированы как минимум на одном entrypoint
traefik, чтобы получать запросы.
Так что вам просто нужно удалить ports: - 80:3001
из вашего API-сервиса.
Что произойдет, так это то, что traefik будет прослушивать только порт 80, и весь трафик, который имеет http-заголовок хоста domain.org
или www.domain.org
, будет перенаправлен в службу приложения, хотя все запросы с api.domain.org
будутбыть направлено на ваш сервис API.
Если вы выполнили все вышеперечисленное и не можете отправлять запросы в службу API, пожалуйста, поделитесь некоторыми журналами из своей службы, чтобы проверить ошибки. В большинстве случаев некоторые заголовки необходимо распространять на внутренние службы, чтобы они моглиработать должным образом.
PS.Вы используете последнюю версию traefik v2.0, где очевидно, что регистрация службы в точке входа достаточна для того, чтобы traefik направлял запросы к этой службе.В предыдущих версиях вы должны были добавить метку traefik.port
к сервису, чтобы объявить, где ваш сервис прослушивает, что было немного более явным по отношению к происходящему. документы .