Dockercompose, Nginx, Resolver не работает - PullRequest
0 голосов
/ 15 января 2019

Я использую контейнер nginx с этим конфигом:

set $ui http://ui:9000/backend;
resolver 127.0.0.11 valid=5m;
proxy_pass $ui;

Это необходимо, потому что контейнер ui не обязательно должен быть включен при запуске nginx. Это позволяет избежать ошибки «host not found in upstream ...».

Но теперь я получаю 404, даже когда ui-контейнер запущен и работает (они оба находятся в одной сети, определенной в docker-compose.yml). Когда я передаю прокси без переменной, без распознавателя и сначала запускаю контейнер пользовательского интерфейса, все работает.

Теперь я ищу, почему докер не может решить эту проблему. Могу ли я вручную добавить фальшивый маршрут к http://ui, который заменяется при запуске пользовательского контейнера? Где это будет? Или я могу исправить решатель?

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Ответ как в этом посте:

https://stackoverflow.com/a/52319161/3093499

Единственное изменение - размещение преобразователя и установки переменной в теле сервера вместо местоположения.

0 голосов
/ 15 января 2019

Сначала вам нужно убедиться, что у вас есть порт в Dockerfile бэкэнда пользовательского интерфейса с EXPOSE 9000. Тогда вы захотите иметь это в качестве конфигурации:

http {
  upstream ui {
    server ui:9000;
  }

  server {
    # whatever port your nginx reverse proxy is listening on.
    listen 80;

    location / {
      proxy_pass http://ui/backend;
    }
  }

...