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

NGINX变量配置proxy_pass返回text/html而非application/javascript如何解决

问题根因

两种配置的表现差异来自NGINX的两个默认行为:

  • 当proxy_pass的值包含变量时,NGINX会停用默认的路径自动替换逻辑,不会自动把location匹配到的路径前缀替换为proxy_pass中指定的路径,导致实际发往上流的路径不符合预期,上游返回404错误页,对应Content-Type就是text/html
  • 当proxy_pass走HTTPS协议且上游是多虚拟主机站点(比如appspot),带变量的场景默认不会发送SNI(服务端名称指示)扩展,上游无法匹配到正确的站点配置,返回默认错误页面

修复方案

调整对应location块的配置即可:

location ^~ /mypath/ {
  # 手动完成路径前缀替换,break标识重写后直接走当前location的代理逻辑
  rewrite ^/mypath/(.*)$ /theirpath/$1 break;
  # 变量形式proxy_pass仅保留协议+上游地址,路径由rewrite处理
  proxy_pass https://$myupstream;
  proxy_set_header Host "$myupstream";
  # 开启HTTPS SNI支持,让上游可以正确识别目标站点
  proxy_ssl_server_name on;
}

调整后Case B的行为就会和Case A完全一致,上游返回的Content-Type也会恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:24:03