nginx 404 Not Found 404 Not Found

9vw9lbht  于 2024-01-06  发布在  Nginx
关注(0)|答案(1)|浏览(278)

我有一个DNSMap到我的aks负载均衡器的外部IP,负载均衡器下面有一个nginx入口控制器,它与我集群中服务的入口通信。
当我尝试访问我的dns像:mydns/post/test我收到nginx 404错误。似乎nginx回答正确,但没有找到内部路由Map。
下面我重写了这个实现的所有步骤。
通过以下命令安装nginx:

  1. kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml

字符串
命令:
kubectl get all -n ingress-nginx
我看到这个结果:x1c 0d1x
我用这个yaml创建了nginx控制的入口:

  1. apiVersion: networking.k8s.io/v1
  2. kind: Ingress
  3. metadata:
  4. name: service-ingress
  5. annotations:
  6. kubernetes.io/ingress.class: nginx
  7. spec:
  8. rules:
  9. - http:
  10. paths:
  11. - path: /
  12. pathType: Prefix
  13. backend:
  14. service:
  15. name: post-service
  16. port:
  17. number: 8080


关于Post-Service:

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: post-service
  5. spec:
  6. selector:
  7. app.kubernetes.io/name: post
  8. ports:
  9. - port: 8080
  10. targetPort: 8080
  11. The service communicate with a pod that containt a test endpoint(spring boot app, works


通过转发端口正确测试):

  1. @RestController
  2. @Slf4j
  3. public class PostController {
  4. @GetMapping("/test")
  5. String all() {
  6. return "Hello!";
  7. }
  8. }


为什么我会收到nginx 404错误?
谢谢

hrysbysz

hrysbysz1#

请使用kubectl logs -n ingress-nginx <your-ingress-controller-pod-name>检查您的Pod日志一次,以深入了解路由或连接到Sping Boot 应用程序的任何问题。
我可以看到,在你的Ingress YAML中,你已经定义了路径为/pathType: Prefix。这意味着Ingress会将指定前缀的流量路由到指定的后端服务。
但是,当您尝试访问URL mydns/post/test时,它与Ingress(/)中的指定路径不匹配。相反,您正在尝试访问post-service上的/test路径。
尝试修改你的ingress YAML如下

  1. apiVersion: networking.k8s.io/v1
  2. kind: Ingress
  3. metadata:
  4. name: service-ingress
  5. annotations:
  6. kubernetes.io/ingress.class: nginx
  7. spec:
  8. rules:
  9. - http:
  10. paths:
  11. - path: /post/test
  12. pathType: Prefix
  13. backend:
  14. service:
  15. name: post-service
  16. port:
  17. number: 8080

字符串
重新使用。
x1c 0d1x的数据

  1. kubectl apply -f service-ingress.yaml



对“/post/test”的请求将被正确地路由到您的服务。
参考文件:
MS Doc
Similar SO Thread
Similar SO thread
Map DNS to external IP

展开查看全部

相关问题