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,也蛮好用的。