hectorqin / reader

阅读3服务器版,桌面端,iOS可用。后端 Kotlin + Spring Boot + Vert.x + Coroutine ;前端 Vue.js + Element。麻烦点点star,关注一下公众号【假装大佬】❗️ Demo服务器由于未备案已被关停,建议自行搭建
GNU General Public License v3.0
8.42k stars 5.24k forks source link

部署镜像,nginx反向代理,报错502 #574

Closed uuzp closed 4 months ago

uuzp commented 4 months ago

[已解决] 域名访问一直报错502,但IP访问就没问题。 而且无论是ping本地还是网桥地址都能ping通,证明网络没问题,也没有防火墙阻挡。 本地

curl 127.0.0.1:4396 

成功返回网页内容,但是

curl 172.17.0.10:4396

则报错

(7) Failed to connect to 172.17.0.10 port 4396 after 0 ms: Couldn't connect to server

最后找到解决办法,可以直接请求网关地址,也就是

curl 172.17.0.1:4396

就能返回网页内容,反向代理到这个地址,域名访问也没问题。 具体原因未知。 别的容器我都是直接设置的Docker的网桥地址,没有任何问题,就这个镜像不行。 折磨了我三、四个小时,就这样吧。😮‍💨

uuzp commented 4 months ago

欢迎各位讨论,虽然现在暂时是能用了,但这个问题不解决,还是有点不舒服。

uuzp commented 4 months ago

~端口映射改成 8080:8080 就又可以解析 172.17.0.5:8080地址了。~ 跟映射出的端口没关系,只能解析172.17.0.5:8080地址。 同时,无法解析172.17.0.1:8080地址,报错:

curl: (7) Failed to connect to 172.17.0.1 port 8080 after 0 ms: Couldn't connect to server

初步怀疑是使用Docker内部网桥连接的关系。 但其他容器也没问题啊,都能正常映射。 其他容器也是同理,大概率就是Docker自身的问题。 原理应该是因为各个容器使用内部网桥,所以端口映射到外部无效,而且因为172.17.0.1网关与外部宿主机的127.0.0.1有交换,所以可以识别映射出的端口。 解决办法就是反向代理到172.17.0.1:映射端口,或是直接对应容器ip:原始端口。 此贴终结。