【发布时间】:2019-07-19 17:03:50
【问题描述】:
我在 Kubernetes 中部署了一个后端服务(http://purser.default.svc.cluster.local:3030)和一个前端 angular 6 应用程序,nginx.conf 为
upstream purser {
server purser.default.svc.cluster.local:3030;
}
server {
listen 4200;
location / {
proxy_pass http://purser;
root /usr/share/nginx/html/appDApp;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
}
在角码中我们使用http.get('http://purser.default.svc.cluster.local:3030', {observe: 'body', responseType: 'json'})
案例1:在nginx.conf 中设置proxy_pass,当我们点击ui 服务时,它会重定向到后端并直接从后端提供json 输出。
案例2:没有proxy_pass,当我们点击前端服务时,它会显示UI,但没有来自后端的数据,即浏览器无法理解http://purser.default.svc.cluster.local:3030
【问题讨论】:
-
我希望你不要试图在没有中间件的情况下直接连接前端和后端。
-
是的,我们正在使用。你可以在这里查看:github.com/vmware/purser/blob/master/cmd/controller/api/api.go
-
如果没有 nginx,如果我们将它们都放在同一个 pod 中,一切正常,即都可以使用 localhost 访问
标签: angular nginx kubernetes nginx-reverse-proxy nginx-config