提前说明下:经测试本(没有创建集群)方式适用weblogic9。
如果运用在weblogic10中会出现:用户登录成功后,做其他操作后,系统会让用户再次登录。
解决办法,1.在控制台创建集群可避免出现二次登录。2.使用apch做分发,在apch配置文件中修改端口为7001并指定各个服务器名称来代替下面写的proxy(代理Server7001端口)
关于weblogic多台服务器进行分发配置(没有创建集群)
登录weblogic控制台后
1.新增服务器
选择安装的domain-环境-服务器-新建服务器(输入服务器名称(Server-7002)、指定端口(本次为7002)。
选择安装的domain-环境-服务器-新建服务器(输入服务器名称(Server-7003)、指定端口(本次为7003)。
选择安装的domain-环境-服务器-新建服务器(输入服务器名称(Server-7005)、指定端口(本次为7005)。
选择安装的domain-环境-服务器-新建服务器(输入服务器名称(Server-7006)、指定端口(本次为7006)。
选择安装的domain-环境-服务器-新建服务器(输入服务器名称(proxy)、指定端口(本次为7001)。
2.部署war包
2.1 安装你的war包(myWar).
2.2 额外部署一个分发的war包(这里叫beaProxy),稍后会说明怎么创建.
3.指定war包对应的服务器
3.1点击你的war包名称(myWar).进入设置页面,选择"目标",这里指定 Server7002、Server7003、Server7005、Server7006.
3.2点击额外部署的项目(beaProxy),进入设置页面,选择目标 这里仅仅指定 proxy对应的服务器名称
4.启动服务器脚本.
4.1 新建的服务器是没有对应的启动脚本的。我们需要进行新建shell脚本。
4.1.1找到主服务启动脚本(我的是在/base_domain/bin/nohupstartManager1.sh) 复制出来.(自带的)
4.1.2 修改主服务7001端口 为7002
4.1.3 修改主服务7001端口对应的名称 为Server-7002
依次按照上面的进行 7003、7005、7006 的详细配置.
需要注意的是:不要忘记给新脚本 附上权限,最好是755的读取权限.不然会执行失败。
如果有两台weblogic服务器要做分发,只要将7005、7006 对应的启动脚本 放在另外一台服务器(29)上即可。
说明下:我是使用两台linux服务器 30作为主服务器(以上操作全是在30做的),29作为副服务器(只需在29启动7005、7006脚本),
不知道为什么主服务器上的数据源、war包、服务器会被克隆到另外一台副服务器上面,
4.2看看domains/base_domain(和你的可能名称不一样)/servers文件夹 是否拥有第一步新建的服务器名称对应的文件夹.
(没有的话,执行下刚才新建的各个服务器的 .sh 脚本),第一次有可能不成功。有可能linux控制台显示进程启动成功,
但是weblogic控制台 服务器状态还是 shutdown(而不是running),
解决办法:从base_domain/servers/AdminServer/security 复制出来boot.properties 修改username password=weblogic控制台登录账号
密码, 依次将security文件夹上传到对应的服务器 Server-7002、Server-7003.... 然后杀进程 重新启动.
说明:
beaProxy 额外部署一个分发项目。
1.新建一个 "beaProxy文件夹".在beaProxy里面新建一个"WEB-INF文件夹",在WEB-INF里新建 web.xml,weblogic.xml
你只需更改 10.182.148.29:7005|10.182.148.29:7006|10.182.148.30:7002|10.182.148.29:7003 为你的链接即可.beaProxy里面的web.xml
或者weblogic.xml内容有任何改动,千万不要忘记重新部署.不然会不生效.
部署时,将这个文件夹上传到主服务器 新建个文件夹名称为temp,然后再进行部署选中这个文件夹即可。别忘记启动.
内容为
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-
app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>10.182.148.29:7005|10.182.148.29:7006|10.182.148.30:7002|10.182.148.29:7003</param-value>
</init-param>
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jpd</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jcx</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.dtf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
</web-app>
weblogic.xml 无需改动.
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<context-root>/</context-root>
</weblogic-web-app>
到这里,就全部结束了,你可以访问 10.182.148.29:7001(代理服务器)/myWar 是不是访问成功了!没成功请与我联系,我们一起探讨!