首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

访问服务时Nginx Ingress返回404

Nginx Ingress是一个开源的Kubernetes Ingress控制器,用于管理和路由来自外部的HTTP和HTTPS流量到Kubernetes集群中的服务。当访问服务时,如果Nginx Ingress返回404错误,可能是以下几个原因导致的:

  1. 服务未正确配置:确保服务已正确部署和配置,并且在Kubernetes集群中正常运行。可以通过kubectl命令或Kubernetes Dashboard进行检查。
  2. 路由规则错误:检查Ingress资源的配置文件,确保路由规则正确定义。可以使用kubectl describe ingress命令查看Ingress资源的详细信息。
  3. 域名解析问题:如果使用域名进行访问,确保域名已正确解析到Ingress控制器的IP地址。可以通过ping命令或nslookup命令来验证域名解析是否正确。
  4. Ingress控制器配置错误:检查Nginx Ingress控制器的配置文件,确保其与集群中的其他组件相匹配。可以查看Nginx Ingress的文档或配置文件进行调整。
  5. 网络问题:检查网络连接是否正常,确保能够从客户端到达Ingress控制器和后端服务。可以使用telnet命令或网络诊断工具进行测试。

对于Nginx Ingress返回404错误的解决方案,可以参考腾讯云的Kubernetes产品,如腾讯云容器服务(Tencent Kubernetes Engine,TKE)。TKE提供了完全托管的Kubernetes集群,包括Ingress控制器的配置和管理。您可以通过TKE控制台或API进行操作,并且腾讯云还提供了详细的文档和教程来帮助您解决问题。

腾讯云TKE产品介绍链接:https://cloud.tencent.com/product/tke

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

访问ingress nginx出现400报错

背景:当把nginx里面的服务迁移到ingress nginx之后,访问出现了400报错,如果是你,你会怎么来排查?...400报错排查 1 收到问题 当迁移完成之后,就有人报障说,访问全部出现出现400 bad request,第一间看到这个状态码,那么就认为是客户端的问题,毕竟4xx的报错都是客户端的问题。...(此处有坑) 接着又收到了其他的反馈:当使用nginx的容器进行代理的时候,请求服务都是正常的;但是一旦请求经过ingress nginx,那么全部报错400 2 抓包...没有办法,只能再次查看下异常的请求包,具体查看ingress nginx与后端的连接情况,发现ingress nginx把请求已经发送了后端,但是后端直接返回了一个400,那么说明是后端也就是服务返回的...风言风语 本来是不想理的问题,最后真正去解决的时候,发现忽然走到了死胡同,服务返回的400,已经超出了ingress nginx的范畴了,还好最后找到了应用的人配合,才得到解决。

25110

记一次通过K8S ingress访问业务服务出现404问题

前言本文主要复盘某次协助业务部门排查ingress访问业务报404问题案例模拟复现业务部门ingress配置了https,访问出现图片因为业务部门的CA证书是买的,理论是不应该出现红色三角形图标。...访问发后,发现仍然是404,仍然是红色三角形图标屹立不倒。...于是产生了一个猜测,有没有可能域名绑定的 ip不是我们配置的ingress node ip,问业务方,他说很肯定说,域名绑定就是配置的ingress node ip,那就非常诡异了。...后面通过查看ingress容器中的nginx.conf,发现那个配置并没写入形如下内容...解决方案将域名映射的ip改为ingress node ip,再访问图片总结虽然文中轻描淡写,但实际上排查花费了不少时间,本文就做个记录,方便以后出现类似问题排查

1.2K30
  • 记一次通过K8S ingress访问业务服务出现404问题

    1 前言 本文主要复盘某次协助业务部门排查ingress访问业务报404问题 2 案例模拟复现 业务部门ingress配置了https,访问出现 因为业务部门的CA证书是买的,理论是不应该出现红色三角形图标...访问发后,发现仍然是404,仍然是红色三角形图标屹立不倒。...于是产生了一个猜测,有没有可能域名绑定的 ip不是我们配置的ingress node ip,问业务方,他说很肯定说,域名绑定就是配置的ingress node ip,那就非常诡异了。...后面通过查看ingress容器中的nginx.conf,发现那个配置并没写入形如下内容 server { server_name demo.lybgeek.com ;...3 解决方案 将域名映射的ip改为ingress node ip,再访问 4 总结 虽然文中轻描淡写,但实际上排查花费了不少时间,本文就做个记录,方便以后出现类似问题排查

    73620

    访问nginx 静态页面返回500

    当使用nginx作为web服务,出现500错误通常意味着nginx无法处理请求。这种情况通常由以下原因引起: 文件权限问题nginx所需的文件可能被设置为不可读、不可写或不可执行。...nginx配置文件问题nginx配置文件中可能存在语法错误或逻辑错误,导致nginx无法正确地处理请求。...可以使用nginx -t命令检查nginx配置文件的语法错误,使用nginx -s reload命令重新加载nginx配置文件。...资源不足如果服务器资源不足,如内存或磁盘空间不足,可能会导致nginx无法正确地处理请求。可以通过检查服务器资源使用情况来解决这个问题。...后端服务问题如果nginx作为反向代理服务器,请求被转发到后端服务,那么后端服务可能出现问题,导致nginx返回500错误。可以检查后端服务是否正常工作。

    2.8K10

    Linkerd 与 ingress-nginx 结合使用以及对服务访问限制

    Ingress 控制器进行网格化将允许 Linkerd 在流量进入集群提供 L7 指标和 mTLS 等功能,Linkerd 支持与大部分 Ingress 控制器进行集成,包括: Ambassador...可以看到 HTTP 流量 当应用程序返回错误(如 5xx HTTP 状态代码),这将在 Linkerd UI 中看到,不仅是应用程序,还有 nginx ingress 控制器,因为它向客户端返回错误代码...我们这里使用一个自定义的域名 emoji.192.168.0.52.nip.io 相当于直接映射到 192.168.0.52 这个 IP 地址上,该地址是我们 ingress-nginx 的入口地址,这样我们不需要做任何映射即可访问服务了...ingress-nginx meshed 限制对服务访问 Linkerd policy 资源可用于限制哪些客户端可以访问服务。...同样我们还是使用 Emojivoto 应用来展示如何限制对 Voting 微服务访问,使其只能从 Web 服务中调用。

    1.1K20

    TKEEKS集群通过logrotate切割nginx-ingress访问日志

    Nginx-ingress 是使用 Nginx 作为反向代理和负载平衡器的 Kubernetes 的 Ingress 控制器,容器服务 TKE 提供了产品化的能力,可以直接在集群内安装和使用 Nginx-ingress.../developer/article/1768089使用nginx-ingress,会经常需要查下访问日志来定位问题,nginx-ingress组件也是支持直接将日志采集到腾讯云的cls,nginx-ingress.../目录,这样logrotate容器可以直接访问nginx_access.log,下面我们说说如何在控制台配置。...- emptyDir: {} name: logratepod运行后,我们通过ingress访问下后端的服务,生成一下访问日志图片隔几分钟后,登陆容器查看日志可以发现日志被切割成多个了图片通过上面的配置...,我们就成功的通过logrotate切割了nginx-ingress controller的访问日志,并且这样还不影响cls采集日志。

    1.9K71

    k8s Ingress nginx错误页面的深度定制

    这里对Ingress nginx做了版本号的隐藏,返回了默认的404 Not Found(页面未找到) 503页面 在k8s中创建一个如下的Ingress资源 apiVersion: extensions...: 80 同样将对应的域名解析到Ingress controller所在的节点进行访问,由于该Ingress的后端并没有对应的nginx-service,因此会返回默认的503(服务暂时不可用) ?...: 403,404,500,502,503,504 # 添加此行 3.4 测试 通过终端命令访问上面404和503页面的两个域名 # ingress-nginx curl example.bar.com...缺点在于这样的情况如果用浏览器进行访问,仅仅是一个字符串文本甚至无法正常显示,因此需要重新定义这个默认后端服务,提供友好的界面返回。...可以看到,在传递默认后端,设置了多个请求头字段,其中X-Code即状态码正是所需要的,这里意味着将控制器返回的对应状态码,例如500定义在了X-Code中。

    2.8K31

    k8s集群上ingress实战

    k8s集群,往往没有公有云LoadBalancer支持,只能迂回通过NodePort方式把ingress controller服务暴露出去,访问流相应变为如下: client(/etc/hosts)...POD部署及检测 示例使用了k8s仓库中已有的luksa/kubia镜像,该镜像使用NodeJS创建了一个web服务,监听在8080端口,将返回POD的主机名给访问者。...当k8s集群没有公有云的LoadBalancer支持,需要采用NodePort的方式把ingress controller服务暴露出去,k8s git提供了Bare-metal的service-nodeport.yaml...,返回404,通过工作节点的NodePort(30880),也能访问ingress controller,但一样返回404。...apply该文件,会在ingress controller里的Nginx的配置文件里添加对应的域名、路径和对应的后台服务,自此就可以从外部访问该后台服务了。

    2.5K50

    Ingress错误代码友好页面(一)

    Ingress是Kubernetes中的一个重要资源对象,用于管理和配置应用程序的外部访问。然而,当Ingress出现问题,Kubernetes的错误提示并不总是友好和清晰。...Ingress错误页面当Ingress配置错误时,通常会返回HTTP错误代码。例如,如果Ingress中指定的后端服务不存在,将返回404错误代码。如果后端服务无法连接,将返回502错误代码。...自定义页面是由运行在集群中的Web服务器提供的,例如Nginx或Apache。当Ingress返回HTTP错误代码,Web服务器将显示相应的自定义页面。...: example-ingress annotations: nginx.ingress.kubernetes.io/custom-http-errors: "404,500"spec: rules...service: name: example-service port: number: 80在上面的配置中,nginx.ingress.kubernetes.io

    1.3K21

    初试 Kubernetes 暴漏服务类型之 Nginx Ingress

    当然对于小规模的集群服务,还是比较不错的。 Ingress Ingress 使用开源的反向代理负载均衡器来实现对外暴漏服务,比如 Nginx、Apache、Haproxy等。...2、环境、软件准备 Kubernetes 使用 Nginx Ingress 暴漏服务,前提我们需要有一个正常运行的集群服务,这里我采用 kubeadm 搭建的 Kubernetes 集群,具体搭建步骤可以参考我上一篇文章...404 页面。...出现 404 的时候返回页面如下: 4、部署 Ingress Controller 接下来要部署 Ingress Controller了,有人会问咋没有 Nginx 组件呢?...访问 dashboard.k8s.ingress 完美运行,但是访问 kibana.k8s.ingress 却不能正常进入到 UI 界面,控制台调试以下,发现出现了请求资源 404 错误,类似下边的请求资源的错误

    2.9K91

    如何在TKE集群玩转nginx-ingress

    一:了解什么是ingress kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx...可以理解为网站文件中的404配置文件) 5.service: 底层容器服务,用于标识后段的pod信息(只起标识作用,真正的请求不经过service) 以上四个是部署nginx-ingress 的几个基于容器的组件...的暴露方式,专门用于nginx-ingress访问方式。...具体Headless 的使用说明:不创建用于集群内访问的ClusterIP,访问Service名称返回后端Pods IP地址,用于适配自有的服务发现机制。...就起作用了,因为请求的域名,在转发规则里没有,这里都会转发到默认的容器里,然后返回404

    2.4K70

    利用 Helm部署 Ingress

    阿里云 Helm 镜像仓库里的 nginx-ingress 软件包已经将要用到的相关容器镜像地址改成了国内可访问的地址。...nginx-ingress-controller 和 nginx-ingress-default-backend 两个服务。...nginx-ingress-default-backend 为默认的后端,当集群外部的请求通过 Ingress 进入到集群内部,如果无法负载到相应后端的 Service 上,这种未知的请求将会被负载到这个默认的后端上...nginx-ingress-default-backend 默认提供了两个 URL 进行访问,其中的 /healthz 用作健康检查返回 200,而 / 返回 404 错误。...实际生产应用中是需要通过边缘路由器或全局统一接入层的负载均衡器将到达公网 IP 的外网流量转发到这几个内网 IP 上,外部用户再通过域名访问集群中以 Ingress 暴露的所有服务

    3K20
    领券