我正在Google Cloud的Kubernetes上从春季启动运行带有后端恢复服务的角度应用程序。 Angular应用尝试使用来自弹簧支架端点的数据,例如:
Spring启动端点:http://localhost:8080/app/getDetails
此端点运行良好,就像我进行端口转发一样。如果我使用入口显式从服务公开端点,则也可以访问它。
但是不能从与Nginx内托管的不同容器在同一容器中运行的Angular应用程序访问。 (启用了验证功能)
在控制台上显示:
获取http://localhost:8080/app/getDetails网:: ERR_CONNECTION_REFUSED
错误:[对象ProgressEvent]
有什么想法可以解决这个问题吗?
这是我的角度代码
export class MyComponent implements OnInit {
private url: string = "http://localhost:8080/app/getDetails";
constructor(private httpClient: HttpClient) {}
dtls: any;
ngOnInit() {}
public onClick() {
this.httpClient.get(this.url).subscribe(
results => {
this.dtls = results;
},
(err: HttpErrorResponse) => {
console.log("Error: " + err.error);
}
);
}
}
这是nginx.conf
upstream webapp {
server 127.0.0.1:8080;
}
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
}
Deployment.yml
apiVersion: v1
kind: Pod
metadata:
name: myapp-demo
labels:
app: myapp-dtls-demo
spec:
containers:
- name: myapp-ui
image: myuser/myapp-kubernetes-demo
ports:
- name: ui-port
containerPort: 80
- name: myapp-api
image: myuser/myapp-service-kubernetes-demo
Service.yml
apiVersion: v1
kind: Service
metadata:
name: myapp-demo-service
spec:
ports:
- port: 4200
targetPort: ui-port
name: ui
protocol: TCP
selector:
app: myapp-football-demo
type: LoadBalancer