【BUG】Nginx使用upstream后端接口报 400

增加Nginx配置后:

复制代码
upstream data_server {
        server 192.168.1.86:20001;
}

原因:

  • 直连后端(如 http://192.168.1.86:18295/xxx),浏览器或 Postman 自动将 Host 设为 192.168.1.86:18295,后端能识别。
  • 走 Nginx,如果不做特殊配置,Nginx 默认将 Host 设为 upstream 的名字(即 data_server)。后端收到 Host: data_server,发现这不是一个合法的域名或 IP,直接报错 400。

解决方法:

在 location 中强制传递真实的 Host 给后端。

复制代码
location /data/ {
    # 添加这一行,将客户端请求的原始 Host 传递给后端
    proxy_set_header Host $host; 
    
    # 或者,如果后端服务监听的是特定端口且依赖端口,可以使用:
    # proxy_set_header Host $host:$server_port;
    
    # ... 其他配置
    proxy_pass http://data_server/ ;
}
相关推荐
测试员周周3 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
Re_Virtual5 小时前
centos 7环境下构建nginx 1.30
nginx·centos·rpmbuild
在角落发呆7 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
裴东青9 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化
哎呦,帅小伙哦9 小时前
Linux 时间:从原子钟到 clock_gettime 的每一面
linux·运维·服务器
sxgzzn9 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
张小姐的猫9 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
CodeMartain9 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
xxx1x1x10 小时前
极客向:DLL/运行库故障的底层逻辑与自动化修复方案
运维·自动化·dll文件·dll·dll修复·dll缺失·dll一键修复
YuanDaima204810 小时前
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
linux·运维·服务器·网络·人工智能