ошибки nginx proxy_pass и docker, когда контейнер не запущен - PullRequest
0 голосов
/ 29 сентября 2019

Чего я пытаюсь достичь:

Я хочу запустить контейнер nginx и контейнер API.Сгруппируйте их в одной сети и proxy_pass из nginx в контейнер API (используя имя контейнера API в файле конфигурации nginx).

Что я делал до сих пор:

Создано 2 docker-compose файла (потому что они не зависят друг от друга).Если API-контейнер запускается до nginx, все работает нормально.При запуске nginx, когда контейнер API не работает, я получаю сообщение об ошибке.

Ошибка, которую я получил:

nginx    | 2019/09/29 07:28:19 [emerg] 1#1: host not found in upstream "api_server" in /etc/nginx/conf.d/default.conf:8
nginx    | nginx: [emerg] host not found in upstream "api_server" in /etc/nginx/conf.d/default.conf:8
nginx exited with code 1

Другая проблема возникает, когда происходит сбой контейнера API.по какой-то причине и после перезапуска nginx также необходимо перезапустить, прежде чем он вернется к работе.

Обходной путь на данный момент:

Запустите контейнер API перед nginx.

Мой (частично) файл конфигурации nginx:

location /api_server {
        proxy_pass http://api_server:2300;
    }

Есть идеи?

1 Ответ

0 голосов
/ 29 сентября 2019

Я рекомендую взглянуть на jwilder / nginx-proxy , поскольку он охватывает то, что вы пытаетесь достичь.Он создал приложение, которое прослушивает действие жизненного цикла контейнера и обновляет файл /etc/nginx/conf.d/default.conf соответственно.Также убедитесь, что контейнер nginx-proxy находится в том же сетевом контейнере Docker, в который будет проксироваться.

...