解决nginx反向代理proxy不能转发header报头

自然
自然
自然
392
文章
465
评论
2020年4月16日02:34:56 4 991字阅读3分18秒

做了一个德国高防plesk卖虚拟主机,奈何地理位置太过于遥远,控制台使用上速度难以接受。用户站点可以使用cloudflare等等的加速手段,控制台能否也这么干呢?理论是完全可以的,那么时间上手看吧。安装日常配置nginx反向代理的步骤完成配置,惊奇的问题出现了?

解决nginx反向代理proxy不能转发header报头

报错

解决nginx反向代理proxy不能转发header报头

翻译过来是:没有指定用户身份认证方式

这个有点不好理解了?plesk采用用户名+密码的身份认证方式,我的用户名和密码完全正确,由于自然实在太白了,索性疯狂谷歌百度吧。

问题定位

既然返回的数据是“没有指定用户身份认证方式”,那么我们只能从这方面入手,这里可以大致判断一点服务器并没有接收到我们发送的用户名和密码。根据api调用的身份认证方式一般分为post发送验证信息和网页请求头加入验证信息两种方式。

nginx反向代理经过长期使用,是完全可以正常转发post请求内容的。那么来猜测一下问题应该在于网页请求头中加入的身份验证信息没被正确转发,为了进一步坐实这个猜测,自然debug看nginx的日志,果然发现了东西。

2020/04/16 01:27:56 [info] 5625#0: *1078154 client sent invalid header line: "

翻译过来就是:客户端发送了无效的header信息

谷歌关键词“nginx反代不能转发header请求头”,果然找到了相关内容,直接上手。

问题成功解决,原来是nginx对header name的字符做了限制,默认 underscores_in_headers 为off,表示如果header name中包含下划线,则忽略掉。

处理方法

1:配置中http部分 增加underscores_in_headers on; 配置

2:用减号-替代下划线符号_,避免这种变态问题。

YY一下:减号代替下划线,对于plesk认证方式做修改,自然这种小白明显是完成不了的。

语法:underscores_in_headers on|off
默认值:off
使用字段:http, server
是否允许在header的字段中带下划线。

参考资料

http://www.ttlsa.com/nginx/nginx-proxy_set_header/?spm=a2c4e.10696291.0.0.608b19a4DZXrfh

http://blog.csdn.net/wx_mdq/article/details/10466891

weinxin
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
Nginx最后更新:2020-4-23
自然
  • 本文由 发表于 2020年4月16日02:34:56
Nginx为站点添加密码验证 极简安全加密认证 Nginx

Nginx为站点添加密码验证 极简安全加密认证

我们总会有一些不希望被别人看见的网站内容,我们如何来保护它呢?针对搜索引擎就算设置了robot.txt依然会被收录首页,别人依然可以通过标题搜索并访问到你的网站,今天自然给大家讲一个简单的部署方法,给...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:4   其中:访客  2   博主  2
    • 简单生活 简单生活 2

      玩的好高端,已经不算白了! :cool:

      • 木 木 木 木 1

        花里胡哨的