• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Nginx代理后HTTP头部丢失问题的解决方案

    发布者: 福建二哥 | 发布时间: 2025-8-16 14:47| 查看数: 5| 评论数: 0|帖子模式

    前言

    在日常开发和运维中,我们经常会使用 Nginx 作为反向代理服务器,将客户端的请求转发到后端服务。然而,在某些情况下,通过 Nginx 代理后,后端服务可能会丢失部分 HTTP 头部信息,尤其是包含下划线(_)的头部,例如 access_token。本文将详细介绍如何解决这一问题。

    一、问题描述

    今天遇到一个典型的问题:通过 Nginx 代理访问后端服务时,后端服务报错:
    1. 该接口的认证类型为授权码认证类型,请在请求头中添加 access_token 参数
    复制代码
    直接访问后端服务的地址可以正常返回数据,但通过 Nginx 代理后却报错。经过排查,发现是 access_token 头部在代理过程中丢失了。

    二、问题原因

    Nginx 默认会忽略包含下划线(_)的 HTTP 头部。这是因为下划线在 HTTP 头部中是非标准的字符,可能会导致某些服务器或客户端无法正确处理。因此,Nginx 默认会丢弃这些头部。

    三、解决方案


    3.1 启用 underscores_in_headers

    为了让 Nginx 能够传递包含下划线的头部,需要在 Nginx 配置中启用 underscores_in_headers 指令。需要注意的是,这个指令必须放在 http 块或 server 块中,而不能放在 location 块中。
    修改 Nginx 配置文件(通常是 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf):
    1. http {
    2.     # 允许传递包含下划线的头部
    3.     underscores_in_headers on;

    4.     server {
    5.         listen 80;
    6.         server_name your_domain.com;

    7.         location /proxy-data/ {
    8.             proxy_pass http://172.17.17.17:18081;
    9.             proxy_pass_request_headers on;

    10.             # 可选:转发特定的 header
    11.             proxy_set_header Host $host;
    12.             proxy_set_header X-Real-IP $remote_addr;
    13.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    14.             proxy_set_header X-Forwarded-Proto $scheme;
    15.         }
    16.     }
    17. }
    复制代码
    3.2 重新加载 Nginx 配置

    修改配置文件后,测试配置文件是否正确,并重新加载 Nginx:
    1. ./nginx -t          # 测试配置文件是否正确
    2. ./nginx -s reload   # 重新加载 Nginx
    复制代码
    总结

    通过启用 underscores_in_headers 指令,可以解决 Nginx 代理后 HTTP 头部丢失的问题。
    具体步骤如下:

    • 在 http 块或 server 块中添加 underscores_in_headers on
    • 重新加载 Nginx 配置
    • 验证配置是否生效
    到此这篇关于Nginx代理后HTTP头部丢失问题的解决方案的文章就介绍到这了,更多相关Nginx代理后HTTP头部丢失内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表