Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.7k views
in Technique[技术] by (71.8m points)

使用nginx的proxy_pass根据路径转发到node服务,静态资源访问404

问题

一个服务器上部署多个node的服务,想要根据路径进行server的转发,但匹配到路径的静态资源访问404。

配置

`

#nginx配置
location /admin {
    proxy_pass http://127.0.0.1:3000/;
}

`
问题如下图,静态资源访问404,但如果加上3000端口是可以访问到该静态资源的,请教一下各位大佬,是什么原因?以及应该如何解决?
image


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

经过排查,发现是nginx中路径/admin/在匹配到后还会再往下寻找匹配规则(PS:在我的nginx中并没有找到后面有符合的规则)以及proxy_pass中uri中末尾/的原因,如下规则匹配到后不会再往下匹配,即可正常代理静态资源
`

location ^~ /admin {
    proxy_pass http://127.0.0.1:3000;
}

`
这样就可以匹配到静态资源了
image.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...