You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群Nginx Ingress部署React应用:返回404但页面正常的解决咨询

问题分析与解决方案

你的Nginx配置存在两处关键问题,导致根路径请求返回404状态码:

  1. 内部定义的location = /块使用了internal指令,该指令限制此location仅能被内部跳转访问,外部直接请求根路径/时会触发404,随后被error_page规则重定向到index.html,因此页面能显示但状态码是404。
  2. error_page 404 /index.html属于冗余配置,且会干扰try_files的正常状态码返回逻辑。

修改后的Nginx配置如下:

server {
    listen 80;

    root /usr/share/nginx/html;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

配置说明

  • 将root和index指令提到server块级别,让所有location共享根目录和默认索引文件,更简洁规范。
  • try_files $uri $uri/ /index.html的逻辑:
    1. 先尝试访问请求的文件路径$uri
    2. 如果是目录,尝试访问目录下的索引文件$uri/
    3. 以上都不存在时,返回index.html,同时保持200状态码(因为index.html是真实存在的文件,Nginx会返回它的原生状态码)
  • 移除了错误的location = /内部块和冗余的error_page配置,确保根路径请求直接返回index.html并给出200状态码,同时兼容React的前端路由(非根路径的路由请求会被转发到index.html,由React Router处理)

这样修改后,无论是根路径还是前端路由路径,Nginx都会返回200状态码,页面也能正常显示。

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:58:21