NGINX & Kestrel 502 Response (111: соединение отклонено) - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть настройка NGINX в контейнере Docker, он корректно обслуживает статическое содержимое, поэтому там нет проблем. Я настроил его как прокси, чтобы он указывал на Kestrel на моем Mac. Kestrel нормально реагирует на порт 5000 (проверено через Curl), но по какой-то странной причине NGINX не может подключиться к нему.

Журналы говорят: * 15 connect () не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиенту: 172.17.0.1, серверу: [OMITTED], запрос: «GET / api / values ​​/ 5000 HTTP / 1.1», восходящий поток: « http://127.0.0.1:5000/api/values/5000",

Моя конфигурация NGINX:

      location / {
        proxy_pass         http://dotnet;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}
upstream dotnet {
    zone dotnet 64k;
    server 127.0.0.1:5000;
}

1 Ответ

0 голосов
/ 12 сентября 2018

Поскольку в вашем контейнере работает nginx, 127.0.0.1 является локальным для контейнера, а не для хоста, на котором он работает.

Вам потребуется изменить IP-адрес, чтобы он соответствовал тому, что контейнер видит какхост (см. здесь: https://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/4)

Также не забудьте открыть порт на брандмауэре: -)

...