nginx转发静态资源时出现404的问题

使用nginx转发服务地址来保证不会出现跨域问题。

location /ggfw/ {
    proxy_pass http://127.0.0.1:9001/;
}

但是通过以上配置之后,虽然能够访问到转发后的地址,但是所有静态资源文件的请求都报404错误,导致反向代理并没有完全成功。

经过多次排查与反复尝试,最终问题还是定位在nginx的路由配置上。具体是,出于nginx的路由路径【/ggfw/】在路由匹配成功之后还会继续往下寻找匹配规则(在上面的配置中找不到)以及在路径中末尾【/】的原因,静态资源的请求地址无法被nginx有效识别,直接导致反向代理失败了,所有的二级地址都没有被代理成功。

解决方法则是修改路由路径的匹配规则(加上往下匹配的通配符【^~】)即可:

location ^~ /ggfw/ {
    proxy_pass http://127.0.0.1:9001/;
}

这样,nginx就能正常代理静态资源的访问,不会出现404请求报错了。

posted @   微风微风  阅读(2976)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示