0.背景

使用docker-compose 部署项目,前台文件,部署过程中没有报错,部署完毕后,访问页面所有接口都是502。查看后台nginx日志,出现下面的报错:

[error] 9#9: *44 connect() failed (111: Connection refused) while connecting to upstream, client: 221.3.67.206, server: localhost, request: "GET /api/get-last-week-submission-statistics?forceRefresh=false HTTP/1.1", upstream: "http://172.20.0.5:6688/api/get-last-week-submission-statistics?forceRefresh=false", host: "xxx.xxx.xxx.xxx", referrer: "http://xxx.xxx.xxx.xxx/home"
1.问题原因排查

一开始以为是nginx配置问题,看了很多文章说是修改一下配置,但是发现还是一样报错. 后来发现即使把前台退回到上一个正常的版本,打开以后还是会报错.

项目由前台,后台,数据库等构成,前台使用正常的版本还是会报错,那我们排查的方向来到后台的jar包.

我们使用docker logs xxx 查看后台的日志,发现日志为空,这个是不正常的,因为正常的后台日志至少会有成功运行的提示.

再用curl 的方式请求了一个后台的地址,发现也是请求不通的.

这样的话,除了网络和端口问题, 剩下的就是后台jar包可能哪个地方出现了问题.

最后,果然, 自己写的后台代码配置上出了问题, 修改了配置文件,重新打包后,把jar包重新制作成docker镜像,然后删除掉原来的容器,重新 执行docker compose up -d 发现接口正常了.