docker和nginx部署:java.net.ConnectException:连接被拒绝(连接被拒绝)

Posted

技术标签:

【中文标题】docker和nginx部署:java.net.ConnectException:连接被拒绝(连接被拒绝)【英文标题】:docker and nginx deployment: java.net.ConnectException: Connection refused (Connection refused) 【发布时间】:2021-06-27 22:55:08 【问题描述】:

我在服务器上运行以下容器:

CONTAINER ID   IMAGE                           COMMAND                  CREATED         STATUS                 PORTS                                                            NAMES
c21c339e1299   gitlabanalyzer_frontend         "nginx -g 'daemon of…"   3 minutes ago   Up 3 minutes           0.0.0.0:8181->80/tcp                                             gitanalyzer-frontend
b3863853402c   gitlabanalyzer_backend:latest   "java -jar app.jar"      3 minutes ago   Up 3 minutes           0.0.0.0:8080->8080/tcp                                           gitanalyzer-backend
724c2cf79b67   gitlab/gitlab-ee:13.8.0-ee.0    "/assets/wrapper"        5 weeks ago     Up 5 weeks (healthy)   0.0.0.0:22->22/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8282->80/tcp   gitlab_server_container_gitlab_1

我用nginx做反向代理(不是容器),/etc/nginx/conf.d/default.conf的内容是:

server 
  listen        80;
  server_name   XXX;

  location / 
    proxy_pass  http://localhost:8181;
  

  location /gitlab 
    proxy_pass  http://localhost:8282;
  

所以前端向后端发送API请求,后端依次向gitlab服务器发出API请求。所有 3 个容器都在同一台机器上。但是,当后端尝试连接到 gitlab 服务器时,我不断收到:java.net.ConnectException: Connection refused (Connection refused)

当我从另一台机器运行后端时,我可以很好地连接服务器上的 gitlab 服务器,但是,当我尝试在服务器上运行所有内容时出现连接错误。

请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

如果它们在 docker 中位于同一个 network 上,那么您的 default.conf 文件应该这样更改:

server 
  listen        80;
  server_name   XXX;

  location / 
    proxy_pass  http://gitanalyzer-frontend:8181;
  

  location /gitlab 
    proxy_pass  http://gitlab_server_container_gitlab_1:8282;
  

否则,您应该将它们放在同一个网络中。

【讨论】:

我已经将它们放在同一个网络上并相应地修改了default.conf,但我得到了这个错误:nginx: [emerg] host not found in upstream "gitanalyzer-frontend" in /etc/nginx/conf.d/default.conf:6,只是为了澄清我的 nginx 没有在容器中运行。 如***.com/questions/42720618/… 所说,您可以添加resolver 吗?如果我写的不正确,还要根据您的容器名称更改 proxy_pass 值。

以上是关于docker和nginx部署:java.net.ConnectException:连接被拒绝(连接被拒绝)的主要内容,如果未能解决你的问题,请参考以下文章

Docker-应用部署-部署Nginx

docker 部署nginx、php-fpm错误记录

使用 Nginx 和 Docker 部署 React 和 Django

在Docker下部署Nginx

我无法部署该项目。 docker-compose 和 nginx 的问题

docker-compose中加入nginx 日志和部署下载