weblogic域下新建节点,通过节点来部署工程,从而不直接暴露控制台在外网
问题背景描述:税局网络分为三块组成:政务云(对外提供开发端口),税局外网,和税局内网。由于项目需要政务云对外开通了7011端口,对提供服务,工程部署在weblogic中间件上,端口为7011。这样导致外网可以通过对外开通的7011端口访问到weblogic控制台,不符合税局安全规范。税局要求要让通过开通的7011端口访问不到weblogic控制台登陆界面。
解决思路:通过网上查找资料,现在的解决思路为,在税局工作机新建weblogic域端口为8080.因为8080,没有对外开通,故外网访问不到8080的weblogic控制台。在8080域下,新建节点,节点监听的端口为7011.把weblogic工程部署在7011节点上。这样外网既可以通过7011访问到weblogic提供的服务,也不暴露控制台登陆界面到外网,保证了安全性。
具体步骤:
第一步:安装weblogic中间件服务器。
第二步:新建域(集群管理端)
注意:以上两步操作,网上有很多资料,可以百度查找安装,这里详细步骤就不在叙述。
第三步:启动weblogic集群管理端,创建集群,并为集群创建和添加节点。
如果步骤二最后一步中勾选了“启动管理服务端”,则点击完成后会直接启动集群的服务端。如果没有勾选“启动管理服务端”,则我们需要进入路径
D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainbin
双击startWebLogic.cmd启动服务(linux系统则是双击运行./startWebLogic.sh),启动时需要输入我们前面(步骤二 4中)设置的域的的用户名和密码。
注:上面路径中nodeManager_domain是我们上面步骤二 3中设置的“域名”,根据自己设置的域名进入对应的路径
1、如下图所示,启动时会提示输入域的用户名和密码
2、启动后,打开浏览器,输入 http://192.168.1.200:8080/console (其中8080是我们步骤二 7中配置的集群管理端的端口号,他不对外开通策略,所以外网访问不到8080对应的控制台登陆界面),如下图所示,输入刚才启动时输入的用户名和密码,点击“登录”
3、进入控制台页面。如下图,点左侧导航树的“环境”-“集群”;然后点击左上角的“锁定服务器”按钮(生产模式需要点击这个按钮才可以对其下的功能进行更新)
4、如下图所示,点击“新建”按钮来创建一个集群。如下图所示,给集群取个名称,其它的保持默认即可。点击“确定”完成集群的创建。(下面创建节点,并添加到集群中)
5、如下图,点击“激活更改”按钮把刚才创建的集群保存到weblogic中。
6、如下图所示。点击左侧树的“环境”- “服务器”。并点击左上角的“锁定并编辑”按钮。点击“新建”按钮创建一个新的节点
7、进入节点创建界面,如下图所示。如下图所示,为节点取个名字,配置节点的端口为7011(7011端口使我们申请开通对外端口),单选框选择“应属于, 使此服务器成为某个现有集群的成员”把该节点加入刚才我们创建的集群。然后点击“下一步”进入完成确认页面(如果我们上面没有创建集群,这里选择不应属于,这是一个独立的服务器,这样在节点创建完成后,也可以启动节点)。
注:端口7011表示,该节点上服务我们通过7011来访问,对应的URL类似于http://l192.168.1.200:7011/服务路径….。该端口一般是递增的,比如第一个节点配置的端口是7011,那么第二个节点端口一般配置为7012,第三个节点端口配置为7013…
8、如下图所示。点击“完成”按钮完成节点的创建。
9、如下图所示。节点创建完成,页面中显示了节点的名称、所属的集群(如果创建节点的时候选择了集群)、节点监听的端口号信息。 生产模式中一定不要忘记点击“激活更改”按钮使配置生效
10、按照上面的方法我们再创建两个节点,并加入集群中(也可以作为独立服务器)。如下图所示,我们创建了一个管理端,和三个节点的集群
注意:此时节点还没有启动,所以状态都是SHUTDOWN。
第四步:启动节点。
1、启动节点必需首先启动域的管理端
(由于我们上面已经启动管理端,所以这里就不再启动了,只把方法列出来)
进入命令行,并进入如下路径(根据自己的安装目录进入对应位置),
cd D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainbin
输入如下命令启动weblogic管理端
startWeblogic.cmd (linux中使用 ./startWeblogic.sh来启动)
2、启动各节点。注:节点的启动必需在管理端启动完成后才能启动。
进入命令行,并进入如下路径(根据自己的安装目录进入对应位置),
cd D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainbin
输入如下
startManagerWeblogic server_7011 t3://localhost:8080
(linux中使用 ./startManagerWeblogic server_7011 t3://localhost:8080)
说明:上面的命令中,startManagerWeblogic.cmd 是启动节点的脚本
(linux中为startManagerWeblogic.sh);server_7011是我们上面创建的节点名称;
t3://localhost:8080这个表示节点server_7011指向本机(localhost)的管理端,8080是本机管理端端口,其中的t3是weblogic的协议类似于http。如果管理端不在本机上则这里的localhost换成目标机器IP,端口换成目标机器管理端端口即可。
注意启动节点时会提示输入用户名和密码
3、依次启动各节点。当我们启动完成后再次点击页面控制台左侧树“环境”- “服务器”可以查看到三个节点的状态已经改变为RUNNING,
4、点击左侧导航树的“部署”进入工程部署页面。在这里就可以部署我们的war包或者工程源码了。
通过以上步骤,我们就可以实现weblogic中间件的安装,创建域,新建集群或者创建节点并部署工程。但是在启动节点的时候每次都要输入用户名和密码,这样比较麻烦,所以下面我们来看怎么来实现启动节点的时候免输入用户名和密码。
当我们第一次启动每一个节点时,weblogic会在
D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainservers
目录下创建各节点对应的文件夹(文件夹的名字和节点名相同),如下图。AdminServer是管理端的文件夹,server_7011,server_7012,server_7013分别对应我们创建的三个节点。
1、设置管理端启动时(startWeblogic.cmd启动时)免输入密码
进入管理端的文件夹
Cd D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainserversAdminServer
在该目录下新建一个名为security的文件夹,进入该文件夹,新建一个名为boot.properties的文件
即文件boot.properties文件在路径
D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainserversAdminServersecurity
下面。文件boot.properties中写入两行
username=创建域时设置的用户名
password=创建域时设置的密码
保存。完成。
注:再次启动该管理端时boot.properties文件中的用户名和密码会被加密。所以不用担心密码泄露的情况发生
2、设置节点启动时(startManageWeblogic.cmd server_7011 t3://localhost:8080),免输入密码,这里首先设置名为server_7011节点
进入管理端的文件夹
Cd D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainserversserver_7001
在该目录下新建一个名为security的文件夹,进入该文件夹,新建一个名为boot.properties的文件
即文件boot.properties文件在路径
D:Program_FilesOracleMiddlewareuser_projectsdomainsnodeManager_domainserversserver_7011security
下面。文件boot.properties中写入两行
username=创建域时设置的用户名
password=创建域时设置的密码
保存。完成。
注:再次启动该管理端时boot.properties文件中的用户名和密码会被加密。所以不用担心密码泄露的情况发
3、按照上面步骤2的方法把节点server_7012、和节点server_7013都设置一下。
再次启动服务器端或者各节点的时候就不再需要输入用户名和密码了。
现在我们启动节点,是通过命令行来启动的,如何通过控制台来控制节点,实现节点的启动和关闭呢,这里就要配置节点管理器了。下面是具体的配置步骤:
节点管理器可以在控制台中对各节点进行关闭和重启,所以需要各节点是免输入密码的,所以进行该步骤配置时需要确定各节点是免输入密码的。具体方法参考“五、配置启动时免输入密码”
首先关闭各节点。点击左侧导航树“环境”-“服务器”- 主页面“控制”,然后勾选三个节点server_7011、server_7012、server_7013,点击“关闭”-点击“立即强制重启”关闭节点
1、创建计算机 (计算机中有节点管理器)。
如下图所示点击左侧导航树中的“计算机”,并点击左上角的“锁定并编辑”按钮,并点击中间主页面的“创建”按钮来创建一个计算机
2、如下图所示。给计算机取个名称(根据自己喜好取,即好容易辨认,比如machine_56)。计算机操作系统选择默认的“其它”。(因为我们的操作系统一般都是linux或者windows,如果是UNIX操作系统则选择UNIX)然后点击“下一步”继续
3、如下图所示类型选择“普通”,(因为我们没有开户默认的SSL所以这里选择了普通)点击“完成”
4、如下图所示。先不要点击“激活更改”。在中间的主页面点击刚才创建的计算机名称“machine_localhost”
5、如下图所示,点击“服务器”菜单,然后再点击下面的“添加”按钮为计算机添加节点(也叫服务器)
6、如下图所示。单选框选择第一个“选择现有的服务器, 并将它与此计算机关联”,选择服务器一行,先选择管理端“AdminServer”,然后点击“下一步”或者“完成”按钮完成管理端的添加
7、如下图所示。再次点击“添加”按钮,添加server_7011节点,然后重复该操作把剩下的节点都添加到该计算机中来。
8、如下图所示。点击“激活更改”完成计算机的创建及配置。
9、如下图所示。点击左上角“锁定并编辑”按钮进入编辑模式。然后点击左侧导航树“环境”-“服务器”-中间主页面中点击“server_7011”
10、如下图所示。点击“服务器启动”菜单项。各项参数配置为(根据自己的机器设置对应的路径)
以下是Windows环境的配置
Java主目录: D:/Program_Files/java/jdk1.6.0_45Java供应商: sun
BEA 主目录: D:/Program_Files/Oracle/Middleware
根目录: D:/Program_Files/Oracle/Middleware/user_projects/domains/portal_domain
类路径: D:/Program_Files/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar
参数: (注:参数一栏设置为空)
安全策略文件: D:/Program_Files/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy
以下是Linux环境的配置
Java主目录: /usr/java/jdk1.7.0_80
Java供应商: sun
BEA 主目录: /home/weblogic/Oracle/Middleware(weblogic安装目录)
根目录: /home/weblogic/Oracle/Middleware/user_projects/domains/nodeManager_domain
类路径: /home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar
参数: (注:参数一栏设置为空)
安全策略文件: /home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy
下面的用户名,密码,确认密码,输入创建域时的设置的用户名和密码。然后点击“保存”
11、如下图所示。点击“激活更改”按钮激活刚才的设置
12、重复上述操作,完成其它结点的设置。
13、修改weblogic 节点管理器参数
首先启动节点管理器,在命令行中进入目录
D:Program_FilesOracleMiddlewarewlserver_10.3serverbin
执行脚本startNodeManager.cmd (linux服务器使用脚本startNodeManager.sh),命令为
startNodeManager.cmd (linux服务器中为 ./startNodeManager.sh)
启动完成后。关闭它。(启动的目的是让节点管理器生成自己的配置文件,第一次启动时会生成)
进入文件夹D:Program_FilesOracleMiddlewarewlserver_10.3commonnodemanager
打开节点管理器配置文件nodemanager.properties,
把StartScriptEnabled=false这一行修改为StartScriptEnabled=true,(个人理解,意思是weblogic允许通过脚本启动节点)。
然后再次启动节点管理器
14、下面我们就可以在控制台的页面上关闭和启动各节点了。如下图所示,点击左侧导航树的“环境”- “服务器”,然后点击中间主页面的“控制”,然后勾选需要启动的节点,然后点击“启动”
15、如下图所示。点击“是”开始启动节点。
16、之后我们可以点击左侧导航树的“环境”- “服务器”刷新页面,查看各节点的状态,查看各节点是否完成启动。如下图所示表示各节点完成了启动。
17、关闭节点。
点击上图的控制,勾选需要关闭的节点,然后点击“关闭”- “立即强制关闭”可以关闭节点。注意:不要关闭控制端(AdminServer),如果把AdminServer也关闭了,那我们需要登录服务器,手动启动管理端。
另外需要注意的是:我们使用节点管理器全新启动weblogic的时候正确顺序是,先启动管理端(startWeblogic.sh),然后再启动节点管理器(startNodeManager.sh),然后登录控制台启动各节点。
Weblogic的优化
根据weblogic论坛查找到的资料,整理如下。
1、内存优化
首先确定JDK支持的内存大小。各个jdk版本在不同操作系统中支持的最大内存是不一样的,但是可以通过以下方法来进行测试。
java -XmxXXXm(g) -version
其中,XXX为最大内存数值, m(g)是内存的计量单位,如果命令能够正确显示出jdk的版本等信息,说明当前jdk支持测试的最大内存数量,否则说明测试的内存超出了jdk支持的最大值。
例如 java -Xmx1024m -version 或者 java -Xmx2g -version
测试发现一般在32位机器上,windows操作系统该最大值位于1.5G-2G之间,linux操作系统该最大值为2G-3G之间;在64位机器上面应该没啥限制,经测试写64G也能正常得出版本信息
修改方法:
修改D:/Program_Files/Oracle/Middleware/user_projects/domains/base_domain/bin下的setDomainEnv.cmd文件(linux上修改setDomainEnv.sh):
修改前:(如下所示,默认的大小为512m)
if”%JAVA_VENDOR%”==”Sun” (
set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m
set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m
) else (
set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m
set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m
)
setMEM_PERM_SIZE_32BIT=-XX:PermSize=48m
setMEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m
修改后:(这里给了它最大4G内存)
if”%JAVA_VENDOR%”==”Sun” (
set WLS_MEM_ARGS_64BIT=-Xms3072m –Xmx4096m
set WLS_MEM_ARGS_32BIT=-Xms1024m –Xmx1536m
) else (
set WLS_MEM_ARGS_64BIT=-Xms3072m –Xmx4096m
set WLS_MEM_ARGS_32BIT=-Xms1024m –Xmx1536m
)
setMEM_PERM_SIZE_32BIT=-XX:PermSize=288m
setMEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=768m
说明:具体修改值根据实际物理内存确定
· -Xmx3550m:设置JVM最大堆内存为3550M。
· -Xms3550m:设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次JVM动态分配内存所浪费的时间。
· -XX:PermSize=256M:设置堆内存持久化初始值为256M。(貌似是Eclipse等IDE的初始化参数)
· -XX:MaxPermSize=512M:设置持久化最大值为512M。
32位操作JDK内存系统:最大可设置1.5G,如果设置过大,会导致服务无法启动
64位操作JDK内存系统:最大设置为物理内存的60~80%
关于于JVM内存的一些详细地知识,查看“附录I”
2、设置线程数
修改weblogicuser_projectsdomainsbase_domainbin下的setDomainEnv.cmd中
在JAVA_OPTIONS中添加如下:
set JAVA_OPTIONS=%JAVA_OPTIONS%-Dweblogic.threadpool.MinPoolSize=2000
set JAVA_OPTIONS=%JAVA_OPTIONS%-Dweblogic.threadpool.MaxPoolSize=4000
说明:
JDK5.0以后每个线程栈大小为1M,但是操作系统对一个进程内的线程数还是有限制的,不能无限生成。32位操作系统根据JVM最大堆内存设置;64位操作系统经验值在3000~5000左右。
3、weblogic文件连接数
D:Program_FilesOracleMiddlewarewlserver_10.3commonbin(根据自己的机器情况进入对应的路径)路径下的commEnv.cmd (linux服务器为commEnv.sh),文件中的方法resetFd限制了weblogic打开的文件连接数不大于1024,我们把这方法注释掉以去掉这个限制。在文件的最后一行由resetFd修改为#resetFd (#号表示注释)
4、修改linux操作系统的文件句柄数限制(这个未做测试,仅供参考)
因为linux系统里都是以文件来表示的,所以在做高并发的web系统时,修改文件句柄限制那是必须的。
查看某个进程使用了的文件句柄数
# sudo ps -ef | grep java
root 1663 1 0 02:37 ? 00:00:43 /opt/bitnami/java/bin/java
从结果中可得知进程的pid,然后根据pid查看该进程当前使用的文件句柄数
#sudo ls /proc/1663/fd | wc -l
1022
发现句柄数一直就停留在1022,同时top查看发现load持续增高。于是先查看了下当前进程的句柄数限制。
#sudo cat /proc/1663/limits | grep “files”
Max open files 1024 1024 files
发现限制卡在这了,于是修改/etc/sysctl.conf文件,添加一行如下:
fs.file-max=30720
保存。并执行
#sudo sysctl -p
然后再查看就发现已经改过来了。
Google发现linux系统里有两种文件句柄限制,一种是系统级的,一种是用户级的。
修改系统级的: www.2cto.com
#echo “30720” > /proc/sys/fs/file-max
修改用户级的:
#sudo vi /etc/security/limits.conf
增加如下行:
* soft nofile 2048
* hard nofile 32768
星号表示任何用户,soft/hard表示软限制、硬限制。修改/etc/pam.d/login文件指定使用PAM
session required /lib/security/pam_limits.so
不过需要注意的是系统是32位还是64位,若是64位的那就是/lib64/security/pam_limits.so
上面的修改后,reboot,再次查看
#ulimit -n
30720
修改成功。
标签:
相关文章
-
无相关信息