首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到: NGINX入侵

找不到: NGINX入侵
EN

Stack Overflow用户
提问于 2021-09-18 01:04:04
回答 2查看 274关注 0票数 0

我正在努力学习.NET微服务。我一直在学习一个关于YouTube的很好的教程(时间: 4:44:55,添加了一个API )。一切都进行得很顺利,直到恩吉克斯·安妞出现在这幅画上。我从培训师的GitHub帐户粘贴了相同的YAML文件,我加倍检查了所有的东西,但什么也找不到:

我可以看到所有的吊舱和服务都很好:

我更新了我的主机文件。

我错过了什么?

网址,我使用的是:http://acme.com/api/platforms/

错误: HTTP错误404。找不到请求的资源。

输入YAML的输出:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/use-regex":"true"},"name":"ingress-srv","namespace":"default"},"spec":{"rules":[{"host":"acme.com","http":{"paths":[{"backend":{"service":{"name":"platforms-clusterip-srv","port":{"number":80}}},"path":"/api/platforms","pathType":"Prefix"},{"backend":{"service":{"name":"commands-clusterip-srv","port":{"number":80}}},"path":"/api/c/platforms","pathType":"Prefix"}]}}]}}
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
  creationTimestamp: "2021-09-18T00:12:41Z"
  generation: 1
  name: ingress-srv
  namespace: default
  resourceVersion: "2274742"
  uid: a7376202-8b1b-4f1a-a42f-08de5f602192
spec:
  rules:
  - host: acme.com
    http:
      paths:
      - backend:
          service:
            name: platforms-clusterip-srv
            port:
              number: 80
        path: /api/platforms
        pathType: Prefix
      - backend:
          service:
            name: commands-clusterip-srv
            port:
              number: 80
        path: /api/c/platforms
        pathType: Prefix
status:
  loadBalancer:
    ingress:
    - hostname: localhost

服务:

更新:尝试了以下命令并获得了一些新信息:

最新情况:结果

Kubectl获取豆荚-命名空间=ingress nginx

EN

回答 2

Stack Overflow用户

发布于 2021-11-13 13:48:18

尝试从入口删除regex注释。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: ingress-srv
  namespace: default
spec:
  rules:
  - host: acme.com
    http:
      paths:
      - backend:
          service:
            name: platforms-clusterip-srv
            port:
              number: 80
        path: /api/platforms
        pathType: Prefix
      - backend:
          service:
            name: commands-clusterip-srv
            port:
              number: 80
        path: /api/c/platforms
        pathType: Prefix

或者试试这个nginx.ingress.kubernetes.io/rewrite-target: /

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: acme.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: commands-clusterip-srv
            port:
              number: 80

在上述入口中,所有请求都将转到服务commands-clusterip-srv,因此如果主机是acme.com,则从浏览器端传递任何/api或/api/c入口都会将流量路由到该服务。

错误 404 显然意味着您的Nginx配置存在一些问题path不匹配或主机问题,Nginx无法找到上游或目标,因此它抛出404。

更新

尝试将IP和条目添加到主机文件中

代码语言:javascript
复制
192.168.1.28 acme.com

我不确定您是否使用了IP来卷曲,理想情况下,您应该尽可能地使用acme.com来访问数据。

还希望您的服务、部署和入口位于相同的名称空间中。

票数 0
EN

Stack Overflow用户

发布于 2021-11-14 06:14:28

首先,谢谢你宝贵的时间。我尝试了所有的事情,但没有发现错误。

我能够解决HTTPS上的问题真是个奇迹。我可以访问"https://acme.com/api/platforms"“。但是,HTTP给了我同样的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69230795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档