2019独角兽企业重金招聘Python工程师标准>>>

Nginx作为一个强大的Web服务器,有很强的功能。在Nginx+Tomcat是Java Web动静分离的很好模型。但是,今天在配置过程中,遇到了一个问题,就是无法登录。由于之前在配置Apache的过程中,遇到过类似的问题,所以我很快确定了是由于sessionId在cookies中引起。

那么,我们如何在Nginx中配置,以避免这样的事情呢?我是通过如下代码来解决的。

场景描述一下:

我有一个二级域名mvn.domain.com,以及一个web程序,部署到我的服务器中,访问地址为:http://localhost:8081/nexus,通过我的域名,我希望反向代理到我的本地地址中。由于,我在部署本地应用的时候,不是链接到根目录(即root),导致我的应用程序的sessionId存储在/nexus的path下。而当我成功后,mvn.domain.com中,找不到对应的sessionId信息,导致会话失效。

解决方法一:

域名使用mvn.domain.com/nexus,反向代理到http://localhost:8081/nexus,可以解决如上问题。配置如下:

location /nexus/ {proxy_pass    http://localhost:8081/nexus/;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;}location / {proxy_pass    http://localhost:8081/nexus/;proxy_redirect  http://localhost:8081/ http://mvn.domain.com/;}

解决方法二,

        location / {proxy_pass    http://localhost:8081/nexus/;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;                 rewrite ^/nexus/(.*)$ /$1 last;proxy_cookie_path /nexus /;chunked_transfer_encoding       off;}

说明:
1. 通过proxy_pass 来确定对应目录的跳转
2. 在多层代理中,填充Header请求头(proxy_set_header)
3. 将应用中访问的nexus路径rewrite到根路径下。
4. 将cookie_path为/nexus设置到根路径下。

转载于:https://my.oschina.net/u/161336/blog/317714

Nginx+Tomcat出现session丢失问题相关推荐

  1. nginx导致的session丢失的解决方法

    nginx导致的session丢失的解决方法 参考文章: (1)nginx导致的session丢失的解决方法 (2)https://www.cnblogs.com/aoyihuashao/p/9058 ...

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

    这2天在测试Nginx作为反向代理到Tomcat应用时,session丢失的问题.经过一系列查看官方文档和测试,发现如下: 1.如果只是host.端口转换,则session不会丢失.例如:      ...

  3. Nginx+tomcat集群的session共享问题

    请求负载过程中会话信息不能丢失.那么需要在多个tomcat中session需要共享.所以需要进行相关问题的解决 配置Tomcat的session共享可以有三种解决方案: 第一种:是以负载均衡服务器本身 ...

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

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 [http://blog.csdn.net/shimiso/article/details/8979044] 为什 ...

  5. Nginx+Tomcat+Memcached实现session共享

    实验环境: server1:nginx tomcat memcached server2:tomcat memcached Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入 ...

  6. Nginx+Tomcat实现高可用和Session会话共享

    一.简介 对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为 ...

  7. nginx+tomcat实现集群负载均衡(实现session复制)

    架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomcat) 优点:实现了可弹性化的架构,在压力 ...

  8. 使用Redis存储Nginx+Tomcat负载均衡集群的Session

    配置Tomcat的session共享可以有三种解决方案: 第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的. 第二种是利用web容器本身的 ...

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

    开发了一个web项目,直接通过url访问,可以正常访问.但是通过nginx就访问不到css,js等文件. nginx.conf文件配置如下: 访问web报错. 但是直接访问web就正常 整了很长时间, ...

最新文章

  1. 关于SurfaceView相机预览获取Bitmap的方法
  2. 【Paper】2015_异构无人机群鲁棒一致性协议设计_孙长银
  3. Hbase shell详情
  4. 跟我一起考PMP---项目时间管理
  5. Hyperledger Fabric 交易流程
  6. 语句include和require的区别是什么?
  7. Go语言来了,要代替C和Python?
  8. Unity设置播放模式下始终先执行指定的场景
  9. Androidpn里的XmppManager的理解
  10. www计算机会议影响力
  11. [转帖]onInterceptTouchEvent和onTouchEvent调用时序
  12. 10.7 a.m.小结
  13. Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(五)许可证配置
  14. Java菜鸟入坑——字符串中输出数字
  15. JAVA验证身份证号码校验码是否正确
  16. 功能安全专题之端到端(E2E) 的通信保护
  17. python 因子分析 权重计算方法_如何使用Python(scikit-learn)计算FactorAnalysis得分?
  18. LPDDR4的训练(training)和校准(calibration)--ZQ校准(Calibration)
  19. 如何在MMIT上使用WMLScript文件(How To Use WMLScript Files With MMIT)
  20. 内网穿透工具--Sunny-Ngrok讲解

热门文章

  1. Android获取存储和打印输出Logcat日志
  2. Halcon算子知识:optical_flow_mg
  3. MATLAB-基本语法
  4. linux pip已经安装,提示/usr/bin/pip: No such file or directory
  5. java读取 png_如何让java的ImageBuffer正确读取PNG文件?
  6. pythonfor循环加2_python-for循环
  7. 10参数_小米10和oppofindx2哪个好用 参数配置对比性能评测
  8. 基于Java的音频转发服务器_javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)...
  9. 【Socket网络编程】15. 发送端和接收端数据大小不一致时 的分析
  10. foreach迭代ArrayList时,真的不能删除元素吗?