多nignx分发到weblogic集群中如何保持会话?

场景:
用户 -> F5 ->多nginx ->weblogic集群 -> RAC
通过网上查的一些资料,主要有两种方式
Cookie或Http Header
由于应用原因,可能没有使用到cookie,那么就考虑header,所以疑问如下
1. 不确定F5是否要做些什么配置,是否有必要做会话保持到nignx
2. header是否可以良好地实现会话保持
3. nignx.conf推荐配置

1回答

HelloWorDomainHelloWorDomain  其它 , 上海东方龙马
yinxin赞同了此回答
Q1、不确定F5需要做些什么配置,是否有必要做会话保持到nginx.A1、如果后端采用了WLS集群,则WebLogic的前端有必要做会话保持。Q2、header是否可以良好地实现会话保持。A2、如果您指的是将SessionID放在x_forwared_for这个headerz中,通过这个Header进行hash,是一种可行的实现...显示全部

Q1、不确定F5需要做些什么配置,是否有必要做会话保持到nginx.
A1、如果后端采用了WLS集群,则WebLogic的前端有必要做会话保持。
Q2、header是否可以良好地实现会话保持。
A2、如果您指的是将SessionID放在x_forwared_for这个headerz中,通过这个Header进行hash,是一种可行的实现方案。不过ip_hash做会话保持会有很大的缺陷,负载不会很均匀,同时因为你们的nginx不在最前端,所以F5分发时要保留原始的客户端IP的相关信息。
Q3、nginx.conf的推荐配置
A3、配置示例:

location / {
       省略...
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://xxx.xxx.xxx.xxx;
    }

如上架构不推荐,因为nginx自身的会话保持非常的弱。
或者你可以通过三方模块 nginx-sticky-module-ng ,源码托管在BitBucket上:
https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/ 实现你的预期功能。
或者换种技术架构,比如用Apache httpd的wls_mod,也蛮好用的。

收起
 2019-05-09
  • 1. http header不是ip_hash, 可以参考这篇博文(其中4、使用Http Header区分不同用户。有介绍) https://blog.csdn.net/paolei/article/details/87859981 2. nginx-sticky-module-ng是基于Cookie的会话保持,所以考虑到应用若不支持,所以这个module不适用,该博文也有阐述 3.apache web服务器很多情况下性能优势没有nignx来的好。
    2019-05-10
  • 为什么考虑不在F5 nignx之间做会话保持呢,一种特殊场景下,如果有一台nginx crash了,那是不是有可能丢失该nginx之前建立好到后面weblogic的会话保持。IBM websphere的HTTP Server是可以实现的(利用plugin cloneid实现),如果能在nginx也能实现,想在别web服务器配置有到后面server的路由信息。
    2019-05-10
  • 回到之前的问题, apache web服务器很多情况下性能优势没有nignx来的好。 nginx开源软件本身在不添加插件的情况下的没有会话保持的功能。 您如何抉择呢。。。
    2019-05-10

提问者

glenzhu系统运维工程师, 南海农商银行

问题状态

  • 发布时间:2019-05-09
  • 关注会员:2 人
  • 问题浏览:969
  • 最近回答:2019-05-09
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30