当前位置:首页 > nginx

会话丢失-NGINX配置之underscores_in_headers

canca3年前 (2023-06-26)nginx1048

1.描述

问题

NGINX代理某个web服务时,单机情况下也出现不停的要求认证的情况

初步分析

去掉NGINX代理,直接访问服务,未出现上述情况;

进一步分析:

查看经过NGINX的请求和直接访问服务请求区别:

cookie中的部分带下划线’_'的认证信息丢失导致,因此出现重复要求认证。

2.解决办法

在NGINX,配置文件http {} 模块中添加如下配置:

underscores_in_headers on;

重启NGINX服务,再次访问服务正常。

3.官方解释

Syntax: underscores_in_headers on | off;
Default: underscores_in_headers off;
Context: http, server

Enables or disables the use of underscores in client request header fields. When
the use of underscores is disabled, request header fields whose names contain underscores
are marked as invalid and become subject to the ignore_invalid_headers directive.

由官方解释可以看出,默认情况下,underscores_in_headers为off,表示当客户端请求头中带有下划线的字段默认将会被标识为无效字段。

因此,如下两个建议:

  • 尽量不要在请求头中添加带下划线的字段;

  • 使用NGINX代理的时候,添加underscores_in_headers on的配置。


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/846.html

分享给朋友:

“会话丢失-NGINX配置之underscores_in_headers” 的相关文章

nginx 反向代理时丢失端口的解决方案,443端口变80

今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题。但一旦设置为监听其他端口,就一直跳转不正常;如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了。    这里给出一个简短的解决方案,修改nginx的配置文件。一、配置…

nginx变量

nginx变量

与request有关的变量1,$arg_name请求行中,名称为name的参数的值。比如,当请求行是"GET /nginx/varindex/?from=rss HTTP/1.1"时,arg_name的值是空字符串…

nginx if判断&&和||写法

今天在写nginx配置的时候需要用到if判断的&&,但是查了一下文档if并不支持&&的写法,现在将方法记录一下…

Nginx 获取自定义请求header头和URL参数

一、获取 header 请求头在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。案例:$.ajax({ ....... headers:…

详解nginx的root与alias

详解nginx的root与alias

nginx版本: 1.18.0…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。