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

Nginx反向代理无尾斜杠URL时重定向至上游名称+备份端口的异常问题求助

Nginx反向代理无尾斜杠URL时重定向至上游名称+备份端口的异常问题求助

大家好,我碰到了一个Nginx反向代理的棘手问题,想请教下各位大佬的解决方案。我把Nginx配置成了后端服务的代理,当主后端挂掉时,Nginx会自动切换到备份后端提供内容。目前的问题是:所有带尾斜杠的URL都能正常工作,但一旦去掉URL末尾的斜杠,浏览器就会被重定向到上游块名称加上备份后端端口的地址,完全无法访问。

正常与异常现象

  • 能正常访问的URL:
    • www.chingu.asia
    • www.chingu.asia/
    • www.chingu.asia/wiki/
  • 异常情况:
    • 访问www.chingu.asia/wiki(无尾斜杠)时,浏览器会被重定向到http://chingu.servers:8111/wiki/,这个地址显然无效,根本找不到对应的服务。

我的Nginx配置代码

upstream chingu.servers {
    server 192.168.0.12      fail_timeout=300s  max_fails=1;
    server 192.168.0.10:8111 backup;
}

server {
    listen 80;
    server_name www.chingu.asia;

    location / {
        proxy_pass http://chingu.servers/;
    }
}

server {
    listen 192.168.0.10:8111;
    server_name _;

    root        /...some path.../Chingu;
    index       index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files     $uri =404;
        include       fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass  unix:/run/php/php7.3-fpm.sock;
        fastcgi_param FQDN true;
    }
}

已尝试的解决办法

  • 试过用正则表达式来匹配所有URI的location块
  • 也尝试添加了port_in_redirect off;和absolute_redirect off;配置
  • 我也考虑过给每个子目录(比如wiki)单独配置location块,但这样做完全违背了代理的初衷,总不能手动添加所有可能的子目录吧?

想问问大家,我到底漏掉了什么关键配置?有没有通用的解决办法能覆盖所有无尾斜杠的URL情况?

备注:内容来源于stack exchange,提问作者Tygre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:02:41