本文不是教程,是记录,因为还没完全搞明白,纯粹记一下,以备后续使用。
问题:两台服务器分别用weblogic部署了同一应用,用apche配置代理进行访问,但是单点登录没问题,代理登录就有问题
分析:因为是接手项目,第一次搞Apache,看了老久才找到原因,了解了一点儿apche,后续还需深入。最后问题是session问题
1.weblogic.xml
问题的第一个要点是应用的WEB-INF下面的weblogic.xml文件,里面的session-descriptor 配置
底下这段中JSESSIONYYQ是唯一的,不能与其他应用重复,但两个节点的值务必要保持一致
<param-value>JSESSIONYYQ</param-value>
weblogic.xml样例
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.0//EN" "http://www.bea.com/servers/wls610/dtd/weblogi
c-web-jar.dtd">
<weblogic-web-app>
<context-root>/irms</context-root>
<session-descriptor>
<session-param>
<param-name>CookieName</param-name>
<param-value>JSESSIONYYQ</param-value>
</session-param>
</session-descriptor>
<container-descriptor>
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<show-archived-real-path-enabled>false</show-archived-real-path-enabled>
</container-descriptor>
</weblogic-web-app>
改过后清缓存重启
2.apache代理配置httpd.conf
另一个文件是apache的代理配置文件
/home/yyq/apache/conf/httpd.conf
里面的WLCookieName JSESSIONYYQ
这个就对应上面weblogic里面的param-value
<Location /yyq>
SetHandler weblogic-handler
WeblogicCluster 10.111.222.111:7001,10.111.222.112:7001
MatchExpression /yyq
#WLLogFile "/home/logonuser/irmsprojects/wllogs/wlproxy.log"
Debug On
DebugConfigInfo On
WLCookieName JSESSIONYYQ
KeepAliveEnabled On
KeepAliveSecs 15
</Location>
3.配置好后重启
启动方法:
./apachectl start
停用方法:
./apachectl stop
参考文件:
竟然找到个前辈的文章,虽然不知是谁
Apache HTTP反向代理和weblogic集群部署(session复制)
应用的Session冲突
weblogic + apache 负载均衡与Session复制
一.编辑weblogic.xml
配置文件放到WEB应用程序的WEB-INF目录下,内容如下:
<?xml version="1.0" encoding="UTF-8"?> true replicated true /二.执行业务操作
在IE地址栏中输入例如http://210.41.121.134:8080/,并登录系统执行业务操作,这时你可以随便关闭或打开Managed_Server_1或Managed_Server2,只要保持有一个Managed_Server是启动状态,业务操作仍可继续执行,不必重新登录。
出现错误:
Replicated HTTP sessions specified for webapp , but clustering not enabled
这个是由于weblogic.xml里面的 PersistentStoreType 这个设置不符合造成
双机状态一般是PersistentStoreType 为replicated
单机为PersistentStoreType 为memory
就不会出现标题的异常