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

Nginx配置异常:/client路径无法访问React应用,仅跳转代理服务

问题分析与解决方案

你的问题出在两个核心点:Nginx配置的语法错误,以及/client路径的资源定位逻辑错误,导致请求被错误转发到代理服务。

1. 修复语法错误

你的SSL server块中server_name domain.com末尾缺少分号,这会导致Nginx无法正确解析整个server配置,进而使得location /client的规则无法生效,所有请求默认匹配到location /的代理规则。

修正后:

server_name domain.com;

2. 修正/client路径的资源定位

当前location /client使用root /app/build/时,Nginx会将请求路径直接拼接在root目录后。比如访问/client,Nginx会尝试查找/app/build/client/index.html,但你的React打包文件实际在/app/build/目录下,所以找不到资源,触发try_files最后一项/index.html,而这个路径又会匹配到location /的代理规则,最终跳转到PHP服务。

正确的做法是使用alias替代root,同时调整try_files的最终 fallback 路径(匹配React的basename配置):

location /client {
  alias /app/build/;
  index index.html index.htm;
  try_files $uri $uri/ /client/index.html;
}

配置说明:

  • alias /app/build/:将/client开头的请求路径映射到/app/build/目录,比如/client/static/js/main.js会指向/app/build/static/js/main.js,完全匹配React打包后的文件结构。
  • try_files $uri $uri/ /client/index.html:当请求的文件或目录不存在时, fallback 到/client/index.html,符合React单页应用的路由规则,同时匹配你设置的basename: "/client"。

验证与重载配置

  1. 先检查配置语法是否正确:
nginx -t
  1. 如果语法无错误,重载Nginx配置:
nginx -s reload

完成以上修改后,/client路径会正确加载本地React应用,根路径/则代理到内部PHP服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:14:50