0 0

nginx使用proxy_pass反向代理时,session丢失5

配置nginx里url rewrite的时候,为了使浏览器地址栏的URL保持不变,使用proxy_pass反向代理,但是每次都会生成新的jsessionid,具体配置如下:

server {

	listen		80;
	server_name	www.domain.com;
	


	location =/ {
		rewrite ^/(.*) http://www.domain.com/zk/user/index.action break;
	#	proxy_pass http://www.domain.com;
        #        proxy_set_header        Host    $http_host; 
        #        proxy_set_header        X-Real-IP       $remote_addr; 
        #        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
        #        chunked_transfer_encoding       off; 
	}

	location / {
            proxy_pass http://www.domain.com:8080;
                proxy_redirect  off; 
                proxy_set_header        Host    $http_host; 
                proxy_set_header        X-Real-IP       $remote_addr; 
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
                chunked_transfer_encoding       off; 
	}
}

问题补充:比如www.domain.com/xxx,实际后台处理的链接是www.domain.com/zk/user.action?domain=xxx,我不希望用户看到通过nginx重写后的链接,所以用到了proxy_pass,但是这时候session会丢失,大概就是这个情况
2013年12月18日 21:07

4个答案 按时间排序 按投票排序

0 0

主要还是cookie路径的转换问题,请看:http://user.qzone.qq.com/737816745/blog/1422497717

2015年1月29日 10:17
0 0

请问 贴主,问题怎么解决的?

2014年3月27日 21:03
0 0

proxy_set_header   Cookie $http_cookie;

    location / {  
            proxy_pass http://www.domain.com:8080;  
                proxy_redirect  off;   
                proxy_set_header        Host    $http_host;   
                proxy_set_header        X-Real-IP       $remote_addr;   
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;   
                proxy_set_header   Cookie $http_cookie;
                chunked_transfer_encoding       off;   
    }  

2013年12月20日 10:20
0 0

tomcat认为你是一个新用户时会生成新session,

tomcat是通过cookie里的jsessionid来判断你是不是新用户的,jsessionid是用来取session的,一一对应的

cookie里有jsessionid,并且和服务器的保存的一样,说明不是新用户,用原来的session就可以

我猜 你urlwrite是不是吧cookie丢了?所以每次都生成新的session

2013年12月19日 10:21

相关推荐

    nginx反向代理导致session失效的问题解决

    两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass http://192.168.40.159:8081/health/; #无问题的配置 } location /health-dev/ { proxy_pass ...

    Nginx安装url_hash插件.doc

    Nginx是一个高性能的HTTP和反向代理服务器,以其轻量级、高并发处理能力以及丰富的模块扩展性而闻名。然而,Nginx本身并不内置支持url_hash功能,这是一个用于负载均衡的策略,通过将特定URL的哈希值与后端服务器...

    https通信nginx反向代理443端口

    在IT行业中,HTTPS通信是确保网站数据安全传输的重要手段,而Nginx作为一款高性能的HTTP和反向代理服务器,常被用来实现这种安全通信。本文将深入探讨如何通过Nginx配置HTTPS服务器,实现443端口的反向代理,以及与...

    Nginx session丢失问题处理解决方法

    在使用Nginx作为反向代理服务器时,有时会遇到session丢失的问题,这通常是由于代理和后端服务器之间交互配置不当引起的。下面是处理和解决Nginx session丢失问题的一些知识点和方法: 1. 了解Session机制:在Web...

    nginx反向代理配置及优化以及核心讲解以及高性能集群搭建

    Nginx是一款高性能、轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,广泛应用于互联网行业,以其高效稳定、低内存占用和强大的反向代理能力著称。在本文中,我们将深入探讨Nginx的反向代理...

    nginx_tomcat_redis搭建负载均衡共享session

    这通常涉及编辑nginx.conf配置文件,设置 upstream 模块来定义后端服务器组,以及使用 proxy_pass 指令将请求转发到这些服务器。 2. **安装和配置Tomcat**:在多台服务器上安装Tomcat,确保应用部署一致,禁用每个...

    nginx集群配置-测试通过

    Nginx通过`proxy_pass`指令可以将session信息转发给后端服务器,但默认情况下,session信息会存储在本地,这意味着如果用户在集群中的不同服务器之间切换,session可能会丢失。为了解决这个问题,我们可以使用...

    nginx+tomcat+memcached实现session共享

    首先,Nginx是一个高性能的反向代理服务器,通常用作负载均衡器,将用户请求分发到后端多个应用服务器,如Tomcat。Tomcat是基于Java的Web应用服务器,负责处理HTTP请求和执行Java Servlets。 **Nginx的负载均衡配置...

    linux下nginx+tomcat使用redis进行session共享所需jar包

    在Linux环境下,构建一个高效的Web服务架构通常会结合多种技术,例如使用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器,以及Redis作为分布式缓存来实现Session共享。本教程将详细讲解如何在Linux上的...

    Nginx+Tomcat+Memcached实现tomcat集群和session共享.docx

    总结,通过Nginx的反向代理和负载均衡功能,以及Memcached作为session共享的中间层,可以构建一个高效且可靠的Tomcat集群环境。这种方式不仅能提升服务的可用性和响应速度,还能确保用户在集群内的无缝切换,保持...

    Nginx timeout超时配置详解

    Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于网站服务器的部署中。Nginx的timeout超时配置是它的一个重要特性,它决定了在一定时间内没有活动或完成操作时,连接或请求将被关闭。这对于优化服务器性能、...

    Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo2

    这里我们关注的是如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat应用服务器集群配合,实现负载均衡,并且确保Session数据在多个Tomcat实例之间共享。这个场景对于大型网站或高并发的应用尤其实用,...

    Nginx + Tomcat +session共享.docx

    在现代互联网架构中,Nginx 和 Tomcat 经常被一起使用,Nginx 作为前端反向代理服务器负责负载均衡,而 Tomcat 则作为后端应用服务器处理 Java 应用程序。在这样的配置中,确保用户会话(Session)在多个 Tomcat ...

    Nginx 集群 tomcat session 共享配置有源码

    在构建高可用的Web服务时,Nginx作为反向代理服务器和负载均衡器,常常与Tomcat这样的Java应用服务器配合使用。然而,当多个Tomcat实例构成集群时,会面临一个问题:用户session的共享。Session是Web应用程序用来...

    Nginx配置http转https以及https访问http静态资源.docx

    Nginx是一款流行的开源Web服务器软件,常用于服务器端的反向代理、负载均衡、媒体流等功能。本文档将详细介绍如何使用Nginx配置http转https,以及https访问http静态资源。 一、Nginx配置http转https 在上面的配置...

    nginx+tomcat+redis完成session共享

    使用`proxy_pass`指令将请求转发到正确的Tomcat服务器,并配置`proxy_set_header`以传递session ID。 4. **测试和优化**:部署应用程序并进行测试,确保在不同服务器之间切换时session能正确共享。同时,可能需要...

    Nginx-1_6_2+Memcached-1_2_6+Tomcat7负载均衡实现Session共享

    本文将详细讲解如何使用Nginx-1.6.2作为反向代理和负载均衡器,结合Memcached-1.2.6实现Session共享,并在Tomcat7应用服务器集群中部署此架构。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器,以其高效、...

Global site tag (gtag.js) - Google Analytics