这2天在测试Nginx作为反向代理到Tomcat应用时,session丢失的问题。经过一系列查看官方文档和测试,发现如下:
1、如果只是host、端口转换,则session不会丢失。例如:
      location /testwx {
             proxy_pass   http://127.0.0.1:8080/testwx;
      }
      通过浏览器访问http://127.0.0.1/testwx时,浏览器的cookie内有jsessionid。再次访问时,浏览器会发送当前的cookie。
2、如果路径也变化了,则需要设置cookie的路径转换,nginx.conf的配置如下
      location /testwx {
             proxy_pass   http://127.0.0.1:8080/wx;
      }
      通过浏览器访问http://127.0.0.1/testwx时,浏览器的cookie内没有jsessionid。再次访问时,后台当然无法获取到cookie了。
      详细看了文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path
     加上路径转换:proxy_cookie_path  /wx /testwx;则可以将wx的cookie输出到testwx上,Tomcat的session正常了。正确的配置是:
    
      location /testwx {
             proxy_pass   http://127.0.0.1:8080/wx;
             proxy_cookie_path  /wx /testwx;#这里的路径要注意对应关系
      }
可以通过微软应用商城实现一键部署 market.azure.cn

如果需要更复杂的路径转换可用通配符的方式进行转换,详情要查看http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path了。

解决nginx使用proxy_pass反向代理时,session丢失的问题的更多相关文章

  1. 解决nginx使用proxy_pass反向代理时,cookie丢失的问题

    1. 如果只是host.端口转换,则cookie不会丢失.例如:    location /project {        proxy_pass   http://127.0.0.1:8080/pr ...

  2. 解决nginx中proxy_pass到tomcat的session丢失问题

    之前在配置tomcat的时候都是一个项目对应一个tomcat,也就是一个端口.最近需要把两个项目整合到同一个tomcat中,通过配置nginx让两个域名指向同一tomcat的不同项目.整合完毕后发现其 ...

  3. 解决nginx proxy_pass反向代理cookie,session丢失的问题

    参考地址:https://www.jianshu.com/p/34abe7eb6f0b 为什么cookie 会丢失? 比如说一个没有经过代理的地址 : http://127.0.0.1/project ...

  4. proxy_pass反向代理配置中url后面加不加/的说明

    在日常的web网站部署中,经常会用到nginx的proxy_pass反向代理,有一个配置需要弄清楚:配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把loca ...

  5. Centos 7 上使用nginx为Node.js配置反向代理时错误:(13: Permission denied) while connecting to upstream

    错误来源:Centos 7 上使用nginx为Node.js配置反向代理时产生(13: Permission denied) while connecting to upstream的错误 nginx ...

  6. 【转】Nginx服务器的反向代理proxy_pass配置方法讲解

    [转]Nginx服务器的反向代理proxy_pass配置方法讲解 转自:http://www.jb51.net/article/78746.htm 就普通的反向代理来讲Nginx的配置还是比较简单的, ...

  7. 【Nginx】使用Nginx做反向代理时,关于被代理服务器相应的超时设置

    > 参考的优秀文章 Module ngx_http_proxy_module > 设置等待被代理服务器的最大响应时间 使用Nginx做反向代理时,因被代理服务器因业务确实复杂,需时较久,往 ...

  8. nginx 反向代理时丢失端口的解决方案

        今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的 ...

  9. 如何取得nginx做反向代理时的真实IP?

    1. 编译 对于client -> nginx reverse proxy -> apache, 要想在程序中取得真实的IP,在执行nginx的configure时,必须指定参数" ...

随机推荐

  1. Vagrant 创建虚拟机

    Vagrant  创建虚拟机 1. 下载相关软件 虚拟机软件:vmware  virtualbox Vagrant 软件:vagrant cd /tmpwget http://download.vir ...

  2. 【Sonarqube】windows下更改Temp文件夹的位置

    下载的最新Sonarqube版本(4.5.1),通过StartSonar.bat文件可以启动,但是无法通过StartNTService.bat文件启动,原因为默认的Temp文件不可写入, java.l ...

  3. 下载windows版本apache网页服务器

    1.进入apache服务器官网http://httpd.apache.org/,这里我们以下载稳定版的httpd 2.4.25为例,点击download. 2.点击链接Files for Micros ...

  4. Python爬虫学习:一些关于爬虫的知识的充电

    什么是Http和Https http协议:全称是HyperText Transfer Protocol,中文意思是超文本传输协议,是一种发布和接收Html页面的方法.默认的端口号是80 https协议 ...

  5. python-Lock进程同步解决互斥

    #!/usr/bin/python from multiprocessing import Process,Lock import time,sys def A(lock): with lock: f ...

  6. C#中判断系统的架构(32位,还是64位)

    一种很简单的方法就是根据IntPtr类型的Size属性来判断, //IntPtr.Size在64位为8,在32位为4 public static Boolean Is64Bit() { ) retur ...

  7. C#控件的Resize事件

    1. 当控件大小发生改变时,就会触发该事件 所以适合动态调整UI的布局, 例如: 国际化,不同语言导致控件长度不同: 控件的内容是动态增加的,也可以使用. 2.必须是大小会发生改变的控件才会触发该事件 ...

  8. C/C++编码规范

    C/C++编码规范 今天人们越来越明白软件设计更多地是一种工程,而不是一种个人艺术.由于大型产品的开发通常由很多的人协同作战,如果不统一编程规范,最终合到一起的程序,其可读性将较差,这不仅给代码的理解 ...

  9. 每天一道leetcode234-回文链表

    考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 2018. ...

  10. [转] 如何让代码可测试化(C#)

    让代码可测试化 本篇介绍如何把我们目前最常见的代码转换为可以单元测试的代码,针对业务逻辑层来实现可测试性,我们以银行转账为例,通常代码如下: public class TransferControll ...