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

Nginx Proxy Manager自定义路径配置问题:React应用访问403错误

问题分析与解决方案

核心问题1:Docker容器内Nginx未适配/app路径映射

你的Docker容器内Nginx配置的location /仅处理根路径请求,但当Nginx Proxy Manager把https://example.com/app的请求转发到容器80端口时,容器内Nginx会尝试在/var/www/htm/app目录下查找资源——而该目录不存在,直接触发403禁止访问。

核心问题2:Nginx Proxy Manager未配置路径重写

若要让/app路径的请求正确转发给React容器,必须在Proxy Manager的自定义路径配置中添加路径重写规则,剥离/app前缀,让容器内Nginx能以根路径逻辑处理请求。


具体修复步骤

步骤1:配置Nginx Proxy Manager路径重写(推荐方案)

  1. 打开Proxy Manager的代理主机设置,进入「自定义路径」选项
  2. 添加路径配置:
    • 路径:/app
    • 转发到:http://你的服务器IP:8880
    • 勾选「Websocket支持」(若React应用用到)
    • 在「高级」栏添加自定义Nginx规则:
      location /app/ {
          proxy_pass http://你的服务器IP:8880/;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
      }
      
    关键是proxy_pass末尾的/,它会自动把/app/xxx重写为/xxx转发给容器,容器内原有的location /配置就能正常处理请求。

步骤2:适配React应用基础路径

在React项目的package.json中添加"homepage": "/app",重新build应用,确保所有静态资源路径都以/app开头,避免后续出现资源加载失败的问题。

步骤3:可选——修改Docker容器内Nginx配置(无需重写路径时用)

如果不想调整Proxy Manager,也可以直接修改容器内Nginx配置,让它直接处理/app路径:

server{
   listen 80;
   server_name _;
   
   location /app {
      alias /var/www/htm;
      index index.html;
      try_files $uri $uri/ /app/index.html;
   }

   # 保留原根路径配置,兼容直接访问IP:8880
   location / {
      root /var/www/htm;
      index index.html;
      try_files $uri $uri/ /index.html;
   }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:03:14