Nginx代理导致多余斜杠:如何避免请求路径出错?

Nginx代理:解决多余斜杠导致的请求路径错误

使用Nginx进行反向代理时,经常会遇到一个恼人的问题:请求路径末尾出现多余的斜杠,导致访问失败。尤其在Java 17环境下,这个问题更为突出。

例如,以下Nginx配置会导致问题:

location /xky-test {
    proxy_pass http://127.0.0.1:7088/xky/;
}

当访问/xky-test时,请求会失败。

问题根源:Nginx location配置

这是因为Nginx对location指令的路径处理机制。如果location路径以/结尾,Nginx会将其视为目录,并在转发请求时自动添加一个斜杠。

解决方案:修改location路径

解决方法很简单,只需确保

location路径也以/结尾:

location /xky-test/ {
    proxy_pass http://127.0.0.1:7088/xky/;
}

通过这种修改,Nginx能够正确识别/xky-test/为目录,避免在请求路径中添加多余的斜杠,从而解决访问失败的问题。