用的Nigix  后面挂了二个Tomcat是springMVC  session存在Redis的项目

但是上线以后反应A用户添加数据,变成B用户的,网上查的方案如下:

解决方案,nginx提供proxy_hide_header的指令,可以去掉相关的响应头信息在nginx.conf文件添加以下配置:

proxy_hide_header Set-Cookie;

server {
listen ;
server_name www.abc.com; #charset koi8-r; #access_log logs/host.access.log main; location / {
proxy_pass http://www.abc.com;
proxy_hide_header Set-Cookie;
}
}

另外,由于j2ee应用可能默认在用户第一次访问时,重写链接,加上jsessionid=...,也会导致串会话,

需要在web.xml中加上:

<tracking-mode>COOKIE</tracking-mode>

  <session-config>
<session-timeout></session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>

另外附加一下session-conifg配置详情

在许多情况下,都可以在Java EE中直接使用HTTP会话,不需要添加显示地配置。不过可以在部署描述符中配置它们,并且出于安全地目的也应该配置。在部署描述符中使用<session-config>标签配置会话。
样例

<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<name>JSESSIONID</name>
<domain>example.org</domain>
<path>/shop</path>
<comment>
<!-- some information -->
</comment>
<http-only>true</http-only>
<secure>false</secure>
<max-age>1800</max-age>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
<tracking-mode>URL</tracking-mode>
<tracking-mode>SSL</tracking-mode>
</session-config>

了解会话属性组

所有<session-config>和<cookie>中的标签都是可选的,但如果使用了这些标签,那么必须按照本例中的顺序添加到部署描述符中(除了被忽略的标签)。标签<session-timeout>指定了会话在无效之前,可以保持不活跃状态的时间,以分钟为单位。如果该值小于等于0,那么会话将永远也不过期。
<tracking-mode>用于表示容器应该使用哪种技术追踪会话ID,它的合法值有:
   URL----容器将只在URL中内嵌会话ID 。不使用cookie或SSL会话ID。这种方式非常不安全。
   COOKIE -----容器将使用会话cookie追踪会话ID 。该技术非常安全。
   SSL ----容器将使用SSL会话ID作为HTTP会话ID。该方法是最安全的方式,但要求使用的所有请求都必须是HTTPS请求。
可以为<tracking-mode>配置多个值,表示容器可以使用多种策略。
只有在追踪模式中使用了COOKIE时,才可以使用<cookie-config>标签。
 通过标签<name>可以自定义会话cookie的名字。默认值为JSESSIONID
标签<domain>和<path>对应着cookie的Domain和Path特性。Web容器已经设置了正确的默认值,因此通常不需要自定义它们。
标签<comment>将在会话ID cookie中添加Comment特性,在其中可以添加任意文本。这通常用于解释cookie的目的,并告诉用户网站的隐私策略。
标签<http-only>和<secure>对应着cookie的HttpOnly的Secure特性,它们的默认值都是假
最后一个标签<max-age>指定了cookie的Max-Age特性,用于控制cookie何时过期。默认情况下,cookie没有过期日期,这意味着它将在浏览器关闭时过期。可以自定义该值,单位为秒(<session-timeout>以分钟为单位)。

nginx缓存页面后,串会话问题的解决方案的更多相关文章

  1. 小程序webview跳转页面后没有返回按钮完美解决方案

    随着小程序越来越火爆,使一个产品如果只有公众号H5页面和APP显得不怎么完美,总感觉不搭上小程序这趟流量车,就会少了点什么,心里别扭地很.在此驱动下,我所在公司也决定赶紧上车. 但是,如果要按照小程序 ...

  2. nginx缓存配置的操作记录梳理

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  3. Nginx实现页面缓存

    页面缓存 1.缓存指令 Nginx的缓存配置比较直观简单,具体有下面几个指令需要知道: A.proxy_cache_path 格式:proxy_cache_path path [levels=numb ...

  4. nginx缓存静态资源,只需几个配置提升10倍页面加载速度

    nginx缓存静态资源,只需几个配置提升10倍页面加载速度 首先我们看图说话 这是在没有缓存的情况下,这个页面发送了很多静态资源的请求:   1.png 可以看到,静态资源占用了整个页面加载用时的90 ...

  5. ASP.NET Core 缓存技术 及 Nginx 缓存配置

    前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...

  6. nginx缓存设置proxy_cache

    http://www.cnblogs.com/dudu/p/4597351.html http块: proxy_cache_path /tmp/cache levels=1:2 keys_zone=n ...

  7. nginx缓存优先级(缓存问题者必看)

    接触nginx的兄弟或多或少都有遇到缓存问题,要么是nginx为什么不缓存,要么就是nginx缓存很快就失效等等问题,在网上找了一遍nginx缓存优先级的文章,大家可以参考下. 架构图client端  ...

  8. Nginx实现负载均衡&Nginx缓存功能

    一.Nginx是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambl ...

  9. 使用nginx缓存服务器上的静态文件

    一.nginx缓存的优点 如图所示,nginx缓存,可以在一定程度上,减少源服务器的处理请求压力. 因为静态文件(比如css,js, 图片)中,很多都是不经常更新的.nginx使用proxy_cach ...

随机推荐

  1. java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

    请求验证码时后台报错:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment ...

  2. 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)

    问题描述: 公司的windows电脑是内网,今天需要安装一个Twisted库,用过的应该都晓得,很常见的异步库,但是仅仅依靠Pypi上下载下来的离线.whl安装包是不行的,linux服务器都是远程连接 ...

  3. ThinkPHP 3.2,配置 'URL_MODEL'=>2。 APP_DEBUG设为false,U函数生成的URL的index.php不能去掉,只有将APP_DEBUG改成true,才能去掉index.php,求解~~

    ThinkPHP 3.2,配置 'URL_MODEL'=>2.APP_DEBUG设为false,U函数生成的URL的index.php不能去掉,只有将APP_DEBUG改成true,才能去掉in ...

  4. Python—序列化和反序列化模块(json、pickle和shelve)

    什么是序列化 我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化.在python中为pickling,在其他语言中也被称之为serialization,marshalling,flat ...

  5. C学习笔记(6)--- 共用体,位域深入

    1.共用体(Union): 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置 ...

  6. ar 归档

    ar的常用用法见正文. 1.创建库文件 我 不知道怎么创建一个空的库文件.好在这个功能好像不是很需要.通常人们使用“ar cru liba.a a.o"这样的命令来创建一个库并把a.o添加进 ...

  7. 【西北师大-2108Java】第三次作业成绩汇总

    [西北师大-2108Java]第三次作业成绩汇总 熟悉PTA平台线上测试环境: 理解用户自定义类的定义: 掌握对象的声明: 学会使用构造函数初始化对象: 使用类属性与方法的使用掌握使用: 掌握pack ...

  8. matlib调用python时转py格式为matlib格式

    因为需要,我用matlib调用python代码. 调用成功但是遇到问题 如下 调用完的结果为python格式   (py.list,py.xx) matlib根本不能用 查了半天一个能解决的方法都没 ...

  9. 前端Jquery总是提示$符未定义

    这些网上给的答案都是Jquery的js文件未成功导入 ! 我的问题是竟然是Spring的service层上面忘记加service注解了 ! 是后端的问题 !

  10. IDEA取消SVN关联 , 在重新分享项目

    IDEA取消SVN关联,在重新分享项目     安装插件 1.打开Intellij中工具栏File的setting(ctrl+alt+s),选择plugins,在右边搜索框输入“SVN”,搜索.选择“ ...