【发布时间】:2023-03-14 17:10:01
【问题描述】:
我正在努力学习 K8。我有一个使用 Angular 制作的前端应用程序。我在 NGINX 代理后面提供它。我也有一个具有功能的后端。有我的文件,
nginx.conf
http {
upstream gateway {
server sb-gateway:8081;
}
include /etc/nginx/mime.types;
server {
listen 80;
sendfile on;
default_type application/octet-stream;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /api/ {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://gateway;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
user.service.ts
...
return this.http.post('/api/login', {data})
...
ui-service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: sb-ui
name: sb-ui
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
nodePort: 30000
selector:
app: sb-ui
后端服务称为sb-gateway,我正在尝试将所有包含/api/ 的请求路由到后端(在NGINX 中指定)。但是当我尝试从前端点击路线/按下按钮时出现此错误。
POST http://192.168.64.2:30000/api/login 404 (NOT FOUND).
我正在尝试在 minikube 上运行它。我在前端 pod 中进行了 SSH,并尝试卷曲后端服务。有用。我只需要弄清楚我应该如何在 Angular 上从前端服务到后端服务进行通信。
任何帮助将不胜感激!
【问题讨论】:
-
我建议使用 nginx ingress 而不是手动配置代理。
-
我需要同意 jordanm 的评论。您应该使用
Ingress nginx而不是安装了 nginx 的单个Pod。你有没有偶然看到这个答案:stackoverflow.com/questions/66641786/…?
标签: angular nginx kubernetes