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

Nginx proxy_pass引发Qutebrowser重定向异常问题排查

问题诊断与解决建议

问题现象

使用Nginx代理Flask应用时,访问https://example.xyz/9rJQi6opvrkXBhp2S7nqQ2/:

  • Firefox正常显示Flask根路由返回的root from flask
  • Qutebrowser被自动重定向至https://example.xyz/
  • 替换为短路径字符串时无此异常

Nginx配置

server_name example.xyz;
location /9rJQi6opvrkXBhp2S7nqQ2/ { 
    proxy_pass http://localhost:5000/; 
} 

Flask应用核心代码

#!/usr/bin/python3
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'root from flask'

@app.route('/test')
def test():
    return '/test from flask'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

诊断结论

问题大概率出在Qutebrowser的URL解析/自动跳转逻辑:

  • Nginx配置逻辑无明显错误,Firefox的正常响应已验证代理路径映射正确
  • 仅Qutebrowser出现异常跳转,且短路径无此问题,说明浏览器对超长路径字符串产生了误判,将其识别为无效路径并自动跳转至站点根

验证与解决方法

方法1:验证Qutebrowser配置

临时禁用Qutebrowser的URL自动修正功能测试:
在Qutebrowser地址栏输入命令:

:set url.auto_search never

若测试后跳转消失,说明是浏览器自动修正规则导致的问题,可将该配置写入Qutebrowser的配置文件永久生效。

方法2:调整Nginx配置规避(无需修改浏览器)

修改Nginx配置,同时匹配带斜杠和不带斜杠的路径,确保代理路径映射无歧义:

server_name example.xyz;
location ~ ^/9rJQi6opvrkXBhp2S7nqQ2(/.*)?$ {
    proxy_pass http://localhost:5000$1;
}

此正则表达式会匹配所有以/9rJQi6opvrkXBhp2S7nqQ2开头的路径,包括带斜杠和不带斜杠的情况,精准映射到Flask对应的路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:54:06