【问题标题】:docker and nginx deployment: java.net.ConnectException: Connection refused (Connection refused)docker和nginx部署:java.net.ConnectException:连接被拒绝(连接被拒绝)
【发布时间】: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 服务器,但是,当我尝试在服务器上运行所有内容时出现连接错误。

请帮我解决这个问题。

【问题讨论】:

    标签: spring docker spring-mvc nginx 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 没有在容器中运行。
    • stackoverflow.com/questions/42720618/… 所说,您可以添加resolver 吗?如果我写的不正确,还要根据您的容器名称更改 proxy_pass 值。
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 2020-01-19
    • 2015-05-18
    • 2018-06-10
    • 2017-08-10
    • 2021-04-24
    • 2014-05-17
    相关资源
    最近更新 更多