后端:python(Django)前端:angular6
我刚刚在Google Kubernetes中的同一群集上部署了我的后端和前端 . 它们是同一群集内的两个单独服务 . 群集上的pod看起来像:
NAME READY STATUS RESTARTS AGE
backend-f4f5df588-nbc9p 1/1 Running 0 1h
frontend-85885799d9-92z5f 1/1 Running 0 1h
服务看起来像:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
backend LoadBalancer 10.3.249.148 35.232.61.116 8000:32291/TCP 26m
frontend LoadBalancer 10.3.248.72 35.224.112.111 8081:31444/TCP 3m
kubernetes ClusterIP 10.3.240.1 <none> 443/TCP 1h
我的后端只适用于django服务器,从使用 python manage.py runserver
命令开始,一切正常 . 我构建了前端并部署在Nginx服务器上 . 所以有两个Docker镜像,一个用于django,一个用于nginx,作为两个pod在群集中 .
然后两个人都有两个进入 . 为前端公开80端口,为后端公开8000端口 . 持有负载均衡器nginx控制器 . 分配域名后,我可以访问https://abc/project作为前端 . 但是当我想发出API请求时,会出现ERR 502 . nginx中的错误消息是:
38590 connect() failed (111: Connection refused) while connecting to upstream, client: 163.185.148.245, server: _, request: "GET /project/api HTTP/1.1", upstream: "http://10.0.0.30:8000/dataproject/api", host: "abc"
错误消息中的上游是后端服务的正确IP,但仍然会收到502错误 . 我可以从nginx服务器卷曲到前端 . 但不能限制后端 . 有帮助吗? PS . 部署之前一切正常 .
1 回答
固定 . Django runserver cmd使用0.0.0.0所以它不会阻止外部连接: