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

Nginx反向代理环境下无法访问缓存静态页面,请求跳转至Tomcat报错

问题原因与解决方案

你的Nginx配置里,location /mycache/ 使用 root 指令的路径拼接逻辑出错,导致Nginx找不到本地文件,最终触发反向代理的错误页面。

核心问题

当请求 http://localhost:8087/mycache/welcome_page.html 时,root C:\nginx-1.22.1\html 会让Nginx尝试查找:
C:\nginx-1.22.1\html\mycache\welcome_page.html
但你的文件实际在 C:\nginx-1.22.1\html\welcome_page.html,不存在mycache子目录,所以Nginx返回404,进而跳转到后端Tomcat返回错误页面。

两种解决方法

方法1:用alias替换root(推荐)

alias 指令会直接替换掉location匹配的/mycache/部分,让请求路径对应到正确的本地文件路径。修改后的配置如下:

server {
    listen       8087;
    server_name  localhost;

    location /mycache/ {
        # Windows下用正斜杠更稳妥,路径末尾加斜杠避免拼接错误
        alias C:/nginx-1.22.1/html/;
        index  index.html index.htm;
        # 可选:强制优先查找本地文件,避免意外跳转至后端
        try_files $uri $uri/ =404;
    }

    location / {
        proxy_pass http://tomcatcluster;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

方法2:调整文件存储路径

把welcome_page.html移动到C:\nginx-1.22.1\html\mycache\目录下,保持原有root配置不变。这种方法需要修改文件位置,灵活性不如方法1。

生效步骤

修改配置后,重启Nginx服务,再访问http://localhost:8087/mycache/welcome_page.html即可读取本地静态文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:40:59