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

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

进一步分析:
查看经过NGINX的请求和直接访问服务请求区别:
cookie中的部分带下划线’_'的认证信息丢失导致,因此出现重复要求认证。

2.解决办法
在NGINX,配置文件http {} 模块中添加如下配置:

underscores_in_headers on;
1
重启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的配置

会话丢失-NGINX配置之underscores_in_headers的更多相关文章

  1. nginx配置图片服务器

    这几天研究了一下nginx配置图片服务器的相关内容,个人的一些收获与大家分享一下: Nginx是目前非常流行的web服务器,它起源于俄罗斯.它具有处理速度快,并发量大,占用资源极低等优点,尤其对于静态 ...

  2. 启动及重新启动nginx,重启nginx后丢失nginx.pid问题解决

    停止操作 停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的 步骤1:查询nginx主进程号 ps -ef | grep nginx 在进程列表里 面找master进程 ...

  3. nginx配置ssl加密(单双向认证、部分https)

    nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...

  4. nginx配置之深入理解

    继上一篇<debian+nginx配置初探--php环境.反向代理和负载均衡>成功之后,有点小兴奋,终于不用整lvs那么复杂来搞定负载,但还是有很多概念没弄清楚. 什么是CGI.FastC ...

  5. 重启nginx后丢失nginx.pid的解决方法

    一,nginx的停止操作 停止操作是通过向nginx进程发送信号来实现的. 步骤1:查询nginx主进程号 复制代码 代码如下: ps -ef | grep nginx 在进程列表里 面找master ...

  6. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

  7. Nginx配置优化参考

    Nginx配置优化参考                                                                                          ...

  8. nigin配置安全:三个案例看Nginx配置安全(转)

    转:https://www.leavesongs.com/PENETRATION/nginx-insecure-configuration.html 三个案例看Nginx配置安全 PHITHON  之 ...

  9. 重启nginx后丢失nginx.pid的解决方法(转)

    一,nginx的停止操作 停止操作是通过向nginx进程发送信号来实现的.步骤1:查询nginx主进程号 ps -ef | grep nginx 在进程列表里 面找master进程,它的编号就是主进程 ...

  10. nginx配置SSL证书实现https服务

    在前面一篇文章中,使用openssl生成了免费证书 后,我们现在使用该证书来实现我们本地node服务的https服务需求.假如我现在node基本架构如下: |----项目 | |--- static ...

随机推荐

  1. electron 菜单选项 - 隐藏,设置菜单

    隐藏菜单 const { app, Menu, session } = require('electron'); /*隐藏electron的菜单栏*/ Menu.setApplicationMenu( ...

  2. .NET高级调试 - 3.7对象检查

    简介 在大多数调试会话中,首先需要检查的项目就是分析应用程序的状态.在确认程序的问题是某种无效状态造成的,我们便需要分析程序是如何变成无效状态的.那么在分析过程中,需要为我们深入了解对象的各种审查方法 ...

  3. springboot 启动慢分析

    JVM参数设置 1. 生成GC日志并网站在线分析 生成gc日志命令 -Xloggc:./gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps 在线分析网站 ...

  4. 我被 .NET8 JIT 的一个BUG反复折磨了半年之久

    很久很久没有写过博客了, 正好最近园子又挣得一线生机, 必须得凑个热闹水一篇. 事情是这样的, 在今年的早些时候, 把公司的一部分api服务器的.net版本从6升级到了8, 毕竟6马上就是EOL了(. ...

  5. 最后的组合:K8s 1.24 基于 Hekiti 实现 GlusterFS 动态存储管理实践

    前言 知识点 定级:入门级 GlusterFS 和 Heketi 简介 GlusterFS 安装部署 Heketi 安装部署 Kubernetes 命令行对接 GlusterFS 实战服务器配置(架构 ...

  6. onethink自带编辑器内容无法修改

    楼主小白一个,之前有大神带着进入onethink框架 在一个编辑页里面放两个编辑框的时候,悲催了--- 一个用作文本编辑,一个用于多图上传 发现前面的文本编辑的内容无法实现,后来楼主想调试一下 之前提 ...

  7. Linux基础-学会使用命令帮助

    概述 使用 whatis 使用 man 查看命令程序路径 which 总结 参考资料 概述 Linux 命令及其参数繁多,大多数人都是无法记住全部功能和具体参数意思的.在 linux 终端,面对命令不 ...

  8. Nuxt.js 应用中的 imports:context 事件钩子详解

    title: Nuxt.js 应用中的 imports:context 事件钩子详解 date: 2024/10/29 updated: 2024/10/29 author: cmdragon exc ...

  9. pyenv-win-master\pyenv-win\libexec\pyenv-install.vbs(161, 5) Microsoft VBScript 运行时错误: 文件未找到

    Windows 10 运行 pyenv install 3.11.2 提示 pyenv-win-master\pyenv-win\libexec\pyenv-install.vbs(161, 5) M ...

  10. 系统框架(delphi)

    写了一个简单的框架,参考ERP系统写的,可使用两层(client+DB),或三层(client+app<datasnap>+DB)的方式运行,非com+方式. 哈哈,登录好俗...... ...