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

Nginx请求路由异常:/verify带JWT参数访问返回404问题排查

Nginx /verify路径404问题排查与修复

核心问题原因

  • Nginx的location规则仅匹配请求的URI路径部分,不会包含?后的Query参数,你把?token=xxx写进location匹配规则里,永远无法命中。
  • 你使用的^~是前缀匹配修饰符,不会解析你后面写的正则表达式,即使你把Query参数去掉,写的正则规则也不会生效。

修复方案

将你原有错误的/verify相关location配置替换为如下内容:

location ^~ /verify/ {
    # 校验token参数是否为JWT格式
    if ($arg_token ~* "^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$") {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8000;
        break;
    }
    # 不符合JWT格式的请求可按业务需求自定义处理,示例为返回400错误
    return 400;
}

配置说明

  • ^~ /verify/ 优先匹配所有以/verify/开头的路径,优先级高于后面的正则location
  • $arg_token是Nginx内置变量,直接获取Query参数中token的值
  • 正则校验通过后才会转发到8000端口的后端服务,同时补上了必要的代理请求头,避免后端获取不到客户端真实信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:48:02