I deployed my springboot project in docker container opening port 8080 as well as an nginx server opening port 80 enter image description here
When I use curl http://localhost:8080/heya/index it returns normally
But when I use curl http://localhost/heya/index hoping I can reach from nginx proxy,it failed. And I checked the log, it says
*24#24: 11 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: , request: "GET /heya/index HTTP/1.1", upstream: "http://127.0.0.1:8080/heya/index", host: "localhost"
Here is my nginx.conf
I cannot figure it out and need help.
CodePudding user response:
111: Connection refused) while connecting to upstream
is saying Nginx can't connect to the upstream server.
Your
proxy_pass http://heya;
is telling Nginx that the upstream is talking the HTTP protocol [on the default port 80] on the hostname heya
. Unless you're running multiple containers in the same Compose network, it's unlikely that the hostname would be heya
.
If the Java application is running on port 8080 inside the same container, talking the HTTP protocol, the correct proxy_pass
would be
proxy_pass http://localhost:8080;
(since localhost
in the container's view is the container itself).
CodePudding user response:
I finally got the answer!!
I ran nginx container and webapp container using host network mode, and it worked.