Reverse proxy from NGINX container to Url on host

Need help. Have been trying for a solution to this issue and could not see an answer or rather I have not come across any.

I have a docker container with NGINX, acting as a reverse proxy. Docker for Windows version 1.12.5(9503).

upstream mysite {
    server 127.0.0.1:8090;
    #server localhost:8090; (have also tried this option)
}

server {
    listen 0.0.0.0:80;
    server_name  localhost;

    location / {
        proxy_pass http://mysite;
    }
}

In the above code localhost:8090 is a url of a website that is hosted on IIS on my host machine. When I access the url on NGINX, I get the following error

2016/12/27 08:11:57 [error] 6#6: *4 no live upstreams while connecting to upstream, client: 172.17.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://googlesite/", host: "localhost"
172.17.0.1 - - [27/Dec/2016:08:11:57 +0000] "GET / HTTP/1.1" 502 173 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0" "-"

Tried to access the url on the host machine (simple HTML site, single page with only simple html, hosted on IIS with anonymous access granted to all.)

curl localhost:8090
Getting the following error:

curl: (7) Failed to connect to localhost port 8090: Connection refused
Am new to Docker and NGINX. Would like to know if it is possible to access urls on the host machine? If Yes, then where am I wrong.

The same configuration works, if I use google.co.in instead of 127.0.0.1:8090.

Thanks.

I had the same issue as you. I finally followed this instructions to setup docker and nginx as reverse proxy.

The “Failed to connect to localhost port 8090:” is solved using an environment variable as the instructions I put says. hope it helps!

Hello, I had the same problem that I solved with https://www.sep.com/sep-blog/2017/02/27/nginx-reverse-proxy-to-asp-net-core-separate-docker-containers/

in docker-compose.yml :

mysite:
    (...)
    ports:
      - "9090:9090"

in conf.d/default.conf or nginx.conf :

upstream website {
    server mysite:9090;
}

Warning: the mysite name in the upstream part corresponds to the container name in docker-compose!

in part server:

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

in location / :

rewrite ^/(.*) /$1 break;
proxy_pass http://website;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
proxy_redirect     off;
1 Like