I have a simple web application running in a docker container and exposed on port 81.
curl http://127.0.0.1:81
returns the index.html of that web app. So it is running and is reachable.
Also localhost or using the browser it works.
Now I added a container with Nginx.
I want to redirect the calls to port 80 to the web app.
This is my simplest /etc/nginx/nginx.conf file:
events {}
http {
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:81;
#proxy_pass http://google.com;
}
}
}
Switching the proxy_pass to the one pointing to Google it works, so I assume the error is because nginx is not able to "communicate" with the web app (also that is what I read about nginx and 502 error).
I access to the nginx instance with docker -it <container-name> /bin/bash
but then
cat /var/log/nginx/error.log
or cat /var/log/nginx/access.log
or tail doesn't work (kind of enter in edit mode but there is no content).
After this simple step is done I'd like to use upstream to ahave a load balancer over 2 web app instances, so something like this:
events {}
http {
upstream api {
server 127.0.0.1:81;
}
server {
listen 80 default;
#listen [::]:80;
#access_log /dev/stdout;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
#proxy_pass http://127.0.0.1:81;
#proxy_pass http://google.com;
proxy_pass http://api;
proxy_redirect off;
}
}
}
Again, this does not work.