配置WebLogic 集群—两台主机
2008-02-19 11:20
776 查看
配置WebLogic Server集群—两台主机
配置环境说明:bea weblogic8.1sp2,1 预备知识
1.1 什么是Domain和Server
1.1.1 Domain
Domain是WebLogic Server实例的基本管理单元。所谓Domain就是,由配置为Administrator Server的WebLogic Server实例管理的逻辑单元,这个单元是有所有相关资源的集合。1.1.2 Server
Server是一个相对独立的,为实现某些特定功能而结合在一起的单元。1.2 Domain and Server的关系
一个Domain 可以包含一个或多个WebLogic Server实例,甚至是Server集群。一个Domain中有一个且只能有一个Server 担任管理Server的功能,其它的Server具体实现一个特定的逻辑功能。1.3 配置集群应用的必要条件
Ø 集群中的所有Server必须位于同一网段,并且必须是IP广播(UDP)可到达的Ø 集群中的所有Server必须使用相同的版本,包括Service Pack
Ø 集群中的Server必须使用永久的静态IP地址。动态IP地址分配不能用于集群环境。如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态IP地址,只有这样,客户端才能访问服务器
Ø 要以CLUSTER方式运行,必须有包含CLUSTER许可的LICENSE才行(从Bea网站上下载的试用版本就可以进行Cluster配置)
1.4 实验环境
Ø 平台:Windows xp2Ø 软件:Bea WebLogic Server 8.1 SP2
Ø 两台主机:A: 127.0.0.2 , B: 127.0.0.3
2 第一台主机配置
2.1 新建一个clusterdomain域
在domains建立了一个clusterdomain域,其中建立了一个admainserver的Server。2.2 配置Managed Server
使用http://127.0.0.2:7002/console登录到管理界面点击左面的“Server”栏,然后选择右面的"Configure a new server",建立两个新managedServer, managedServer01如下:Name: managedServer01
Listen Address:127.0.0.2
Listen Port:8001
按照前面的样子建立另一个新Server,,名字叫做managedServer02,注意这个managedserver时运行在B主机上。
Name: managedServer02—部署在主机B上
Listen Address:127.0.0.3—主机B的地址
Listen Port:8002
2.3 建立一个cluster
点击左面的“Cluster”栏,然后选择右面的"Configure a new cluster",建立一个新Cluster:mycluster然后在右面有一个gap,名字叫做“Servers”,点击进入,然后把“Available”的managedServer01, managedServer02都"Chosen"了,就是把刚才定义的三个server都加入到cluster里面去。
2.4 再建立一个代理server
Name: proxyserverListen Address:127.0.0.2
port:9001
切忌这次不要把这个server加入到cluster里面去。
2.5 建立域之间的信任关系
由于managedServer是分别建在两台主机上部署的两个域中,所以要建立两台主机域之间的信任关系。建立域之间的信任关系,是为了使一个 WebLogic Server 域的主题中的委托人作为另一个域的委托人被接受。启用此功能后,将通过 RMI 连接在 WebLogic Server 域之间传递标识,而无需在第二个域中进行身份验证(例如,以 Joe 的身份登录到域 1 中,当对域 2 进行 RMI 调用时,仍会对 Joe 进行身份验证)。
启用内部域信任后,事务可跨越域提交。当一个域的域凭据与另一个域的域凭据相匹配时,就会建立信任关系。
中文的资料说的不详细,按照以下英文说明就可以搞定
To establish a trust relationship between WebLogic Server domains:
1. In the left panel of the console, select the domain name at the top of the tree.
2. Select the Security-->Advanced tab.
3. Uncheck the Enable Generated Credential attribute.
4. Click the Change... link in the Credential attribute. 5.
5. Enter a password for the domain. Choose the password carefully. BEA Systems recommends using a combination of upper and lower case letters and numbers.
6. Confirm the password.
7. Click Apply.
8. Reboot WebLogic Server.
去掉默认的“Enable Generated Credential”选项,这里将A和B主机的credential密码设置成一样。
如果在启动在B主机的managedServer02服务时候报出如下异常:
Reason:weblogic.security.service.SecurityServiceRuntimeException: [Security:090411]Security Realm [myrealm] improperly configured - with nested exception:
[[Security:090519]The realm myrealm is not properly configured. Follow the directions in the following errors to correctly configure the realm.
[Security:090529]None of the deployable credential mappers in realm myrealm has deployments enabled. To correct the problem, enable deployments in one of the deployable credential mappers.]
解决方法:
1. 进入A主机weblogic console控制台,然后点击“Your Application's Security Settings”下的Realms选项
2. 进入Realms—>general选项,选中“Ignore Deploy Credential Mapping”,就OK了。
2.6 启动新建的managedServer01, proxyserver
以managedServer01为例,服务启动脚本如下:c:
cd E:/bea/user_projects/domains/clusterdomain
E:
Call startManagedWebLogic.cmd managedServer01 http:// 127.0.0.2:7001
2.7 给cluster配置deploy web application
注意这里“Select targets for this Web application module ”时,不要选择“All servers in the cluster”选项,那样会部署不成功,具体原因我也不晓得。这里我还是用我自己做测试的那个war文件,然后通过访问 http:// 127.0.0.2:8001/app http:// 127.0.0.3:8002/app
可以成功得到结果
2.8 配置proxyserver,让它支持HttpClusterServlet
在/tmp/下建立proxy的目录,然后再在/tmp/proxy下面建立一个WEB-INF的目录。cd /tmp/proxy/WEB-INF
然后再建立如下两个文件
2.8.1 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>
2.8.2 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>
127.0.0.2:8001|127.0.0.3:8002
</param-value>
</init-param>
</servlet>
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GB2312</param-value>
</context-param>
<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-->
</web-app>
记住:web.xml里面红颜色的部分,应该对应的你的系统里面managedServer01,跟managedServer02的IP和Port,中间用|分割。然后
cd /tmp/
jar -c0vf proxy.war proxy
把这个web application打包成proxy.war.
然后把proxy.war deploy到proxyserver上。
2.8.3 中文字符问题解决
当出现java的中文乱码问题时,需要根据具体情况来分析解决。在开发Portal内容管理程序中我们遇到了以下几种出现中文乱码的情况:页面内的中文字符、提交到数据库中的内容、在页面中显示的从数据库中读出的内容和页面之间通过URL传递的中文参数。通过实践和总结,有下面一种比较通用的简单解决方案,即在任何地方都使用GB2312字符集进行编码和解码,可以解决绝大多数中文乱码问题。1. 在startweblogic.cmd 文件中添加如下代码(使程序编译时按gb2312编码):
%JAVA_OPTIONS% -Dfile.encoding=gb2312;
2. 修改weblogic.xml文件(使页面向服务器发送的内容按gb2312编码):
<jsp-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</jsp-param>
3. 修改web.xml文件(使页面之间通过URL方式传递的中文参数以gb2312进行编码):
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>gb2312</param-value>
</context-param>
3 第二台主机配置
3.1 新建一个clusterdomain域
在domains建立了一个clusterdomain域(域名名字最好和第一台主机一样),再建立了一个admainserver的Server。3.2 配置Managed Server
建立一个managedServer运行在B主机上。要注意的是,“Managed Server”上的配置信息要与在A主机中Cluster所指定的配置信息一致。Name: managedServer02—部署在主机B上
Listen Address:127.0.0.3—主机B的地址
Listen Port:8002
3.3 建立域之间的信任关系,B主机不用配置
参考A主机的“建立域之间的信任关系”3.4 启动新建的managedServer02
服务启动脚本如下:c:
cd E:/bea/user_projects/domains/clusterdomain
E:
Call startManagedWebLogic.cmd managedServer02 http:// 127.0.0.2:7001
注意:红色部分这里是将managedServer02放到托管到主机A上的admainserver下
4 集群测试
现在访问http://localhost:9001/app怎么样?本来没有deploy到proxyserver上的应用也可以访问了吧。这就说明,cluster 已经配置成功了。相关文章推荐
- jenkins发布项目到远程主机上,配置两台linux如何使用SSH免密码登录
- weblogic集群配置内存优化线程优化
- 通向架构师的道路(第九天)之weblogic的集群与配置
- Weblogic集群概念和配置
- webLogic集群Session持久化配置方式
- Weblogic集群概念和配置(六)
- 企业级应用WebLogic11g集群配置与项目实施_WebLogic部署培训教程
- 关于weblogic多台服务器分发配置(没有创建集群)
- 通向架构师的道路(第九天)之weblogic的集群与配置
- WebLogic:配置集群
- WebLogic 10.3.5.0 集群环境配置(一)
- centos6.5下postgres-XC集群安装与配置(两台)
- 基于docker搭建跨主机的spark集群并配置notebook(二)
- 非常详细的weblogic使用教程以及集群配置
- weblogic 10 虚拟主机多域名配置
- weblogic集群配置(windows版)
- 通向架构师的道路(第九天)之weblogic的集群与配置
- WebLogic集群配置
- ubuntu/debian 配置ssh服务,实现两台linux主机之间文件传输
- 通向架构师的道路(第九天)之weblogic的集群与配置