步骤 步骤
步骤 1: : : :复制库 复制库 复制库 复制库
在UNIX平台上WebLogic NSAPI插件模块作为共享对象(.so文件)分发,
在Windows平台上作为动态连接库分发。这些文件分别位于WebLogic分发 的 /lib 于 /bin 目 录 中 。 从 平 台 支 持 表 (http://e-docs.bea.com/wls/docs60/../platforms/index.html#plugin)中选择适合于您的 环境的库文件。然后将所选择的库文件复制到NES所在的文件系统中。
步骤 步骤
步骤 步骤 2: : : :设置 设置 设置 设置 obj.conf 文件 文件 文件 文件
为了使用NSAPI插件,需要修改NES的obj.conf文件。包括以下改动:
指示NES将本地库装载为NSAPI模块的代码
应该交由NSAPI插件处理的请求类型的对象定义
允许通过NSAPI插件使用WebLogic协议的HTTP-协议隧道功能的可选代码。
以下是配置obj.conf文件的步骤 a. 找到并打开找到并打开找到并打开找到并打开obj.conf文件
用于NES实例的obj.conf文件位于以下位置:
NETSCAPE_HOME/https-INSTANCE_NAME/config/obj.conf
其中,NETSCAPE_HOME是安装NES的根目录,INSTANCE_HOME是正在使用的特定实例 或服务器配置。例如,在一台叫作goldengate的UNIX机器中,你可以在以下位置找到
- 127 - obj.conf文件。
/usr/local/netscape/enterprise-351/https-goldengate/config/obj.co nf
b. 指示NES将本地库装载为一个NSAPI模块
在obj.conf文件的开头加入以下代码行。这些行指示NES应该把本地库(共享对象或dll)
装载为一个NSAPI模块。
Init fn="load-modules" funcs="wl-proxy,wl-init"\
shlib=/usr/local/netscape/plugins/SHARED_LIBRARY Init fn="wl-init"
这里的SHARD_LIBRARY是你在第一步中所安装的共享对象或dll(例如libproxy.so)。 功能“load-modules”表明在NES启动时要装载的共享库。值“wl-proxy”与“wl-init”
标识了NSAPI插件将执行的功能。
c. 声明交由NSAPI插件处理的请求
所有经过NSAPI 插件传递给WebLogic服务器的请求都必须在位于 obj.conf文件中的 对象定义中声明。有两种方式识别这些请求:通过 MIME 文件扩展,或者通过请求的 URL 中的特定字符串(被称为ppath)
无论是使用MIME方式还是 ppath方式来代理请求,你都应该在<Object>标签中以及在 开启与闭合<Object>标签中添加参数。NES 参数(位于<与>)包括名字或者 ppath(可 选的)。在标记之间,Service语句设置模块所识别的WebLogic参数:WebLogicHost(必 须的),WebLogicPort(必须的),PathTrim, PathPrepend, ConnectTimeoutSecs,
ConnectRetrySecs以及StatPath。如果你没有设置必需的参数,那么在调用时,对象 会产生HTML错误指出配置中缺少参数。
Netscape的obj.conf文件对于问被的位置有严格要求。要避免出现问题,请务必遵照 以下指导:
去除无关的前导与尾部空格
如果所输入的字符必须跨越多行,那么在行的末尾加上后斜杠“\”,然后继续在下一行输入。
后斜杠会直接把前后两行连接在一起。如果要在第一行的最后与第二行的开始之间必须要有 一个空格的话,务必只使用一个空格,或者是在第一行的末尾(在后斜杠之前)或者是在第 二行的开始。
属性不能跨越多行。(例如,你必须在webLogicCluster后面列出一个集群中的所有服 务器)
d. 配置ppath代理方式
要通过 ppath 来代理请求,输入<Object name= “insert_name”>开始一个新对象的 定义。按照所代理的服务命名该对象,并在<Object>标签中设置 ppath。Ppath 的一个 字符串,用它来标识要递交给weblogic服务器的请求。当你使用了ppath,所有包含该
- 128 - 路径的请求都将转交给WebLogic服务器来处理。例如,一个 “/weblogic*”的 ppath 将会把所有以 http://enterprise.com/weblogic 开始的请求转交给NSAPI插件,
然后该插件会把请求传送给指定的Weblogic主机/端口或集群。
每一个对象定义(位于标签之间的代码)都是以Service fn=wl-proxy开头。对于不是 位 于 集 群 中 的 WebLogic 服 务 器 , 你 必 须 设 置 这 两 个 参 数 :WebLogicHost 与 WebLogicPort。 对 于 位 于 集 群 中 的 webLogic 服 务 器 , 只 需 要 设 置 一 个 参 数 : WebLogicCluste。
下面的这个例子在obj.conf文件中添加了两个对象定义,它们分别定义了两个ppath。
这两个ppath标识了交由不同WebLogic服务器实例处理的请求。
服务器实例处理的
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl-proxy WebLogicHost=myserver.com\
WebLogicPort=7001 PathTrim="/weblogic"
</Object>
<Object name="si" ppath="*/servletimages/*">
Service fn=wl-proxy WebLogicHost=otherserver.com\
WebLogicPort=7008
</Object>
注意,不是必须配置的参数,如 PathTrim,可以用来进一步配置经过 NSAPI 插件传送 ppath的方式。本文档在“参数”这一节中定义了所有WebLogic NSAPI插件的参数。
e. 配置文件扩展名方式的代理
无论请求的URL是怎样,总之所有包含指定MIME文件类型扩展(如.jsp或.jhtml)的 请求都会被挑出来转交给NSAPI插件。为了把某种文件类型的请求都转送到WebLogic服 务器中,必须在已原来“缺省的”对象定义中添加Service语句。
为了把所有JSP代理到WebLgic服务器,必须在最后一个以NameTrans fn=…开头的行 后面以及以PathCheck开始的行之前加入以下Service语句。
Service method="(GET|HEAD|POST|PUT)" type=text/jsp fn=wl-proxy\
WebLogicHost=192.1.1.4 WebLogicPort=7001 PathPrepend=/jspfiles 该语句将把所有以.jsp作为扩展名的文件代理到所指定的WebLogic服务器,因此请求的 URL类似于:
http://WebLogic:7001/jspfiles/myfile.jsp
pathPrepend 的值应该对应于 WebLogic 的文档根(document root),JSPServlet 在文档根中搜索JSP文件并对文件进行编译。(有关JSP以自动页面编译的更多信息,请 阅读开发者指南中的使用WebLogic JSP中的内容)
在增加了上述语句后,缺省的Object定义类似于下面,所添加的部分用黑体显示。
- 129 -
<Object name=default>
NameTrans fn=pfx2dir from=/ns-icons\
dir="c:/Netscape/SuiteSpot/ns-icons"
NameTrans fn=pfx2dir from=/mc-icons\
dir="c:/Netscape/SuiteSpot/ns-icons"
NameTrans fn="pfx2dir" from="/help" dir=\
"c:/Netscape/SuiteSpot/manual/https/ug"
NameTrans fn=document-root root="c:/Netscape/SuiteSpot/docs"
Service method="(GET|HEAD|POST|PUT)" type=text/jsp fn=wl-proxy\
WebLogicHost=localhost WebLogicPort=7001 PathPrepend=/jspfiles PathCheck fn=nt-uri-clean
PathCheck fn="check-acl" acl="default"
PathCheck fn=find-pathinfo
PathCheck fn=find-index index-names="index.html,home.html"
ObjectType fn=type-by-extension
ObjectType fn=force-type type=text/plain
Service method=(GET|HEAD) type=magnus-internal/imagemap fn=imagemap Service method=(GET|HEAD) \
type=magnus-internal/directory fn=index-common
Service method=(GET|HEAD) type=*~magnus-internal/* fn=send-file AddLog fn=flex-log name="access"
</Object>
所有要转交给WebLogic服务器处理的MIME类型都应该以上面这种方式,在缺省对象中 添加对应的Service语句。
f. 启用HTTP隧道功能
如果你想通过NSAPI 插件使用 WebLogic协议的 HTTP 隧道功能,你应该在obj.conf 文件中添加以下对象定义,替代希望使用WebLogic主机和端口,或者WebLogic集群。
<Object name="tunnel" ppath="*/HTTPClnt*">
Service fn=wl-proxy WebLogicHost=192.192.1.4 WebLogicPort=7001
</Object>
步骤 步骤 步骤
步骤 3: : : :更改 更改 更改 更改 MIME.types 文件 文件 文件 文件
如果按照以上方式把NSAPI插件设置为通过MIME类型代理,必须在NES配置
- 130 - 目录中添加要代理的 MIME 类型的标识符及其扩展,这可以通过两种方式来实 现:通过管理终端修改,或者直接编辑MIME.types文件。
要直接编辑MIME.types文件,打开要编辑的文件并输入以下行:
type=text/jsp exts=jsp
注意,对于NES 4.0(iPlanet),不要加入用于JSP 的MIME类型,而是 应该将原来的MIME类型/magnus-internal/jsp改为text/jsp。
对于所有 NES 版本,你需要手工编辑MIME.types 文件,或者使用管理终端 来编辑。点击Manage->Preferences->Mime Types打开管理终端,然后 编辑Mime Types文件
步骤 步骤 步骤
步骤 4: : : :分发与测试 分发与测试 分发与测试 分发与测试 NSAPI 插件 插件 插件 插件
在安装并配置了NSAPI插件后,按以下步骤来进行分发与测试:
a. 启动WebLogic
b. 启动NetScapte Enteprise Server。如果已经运行了NES,为了使新的设置生效,必须
重新启动它,或者从管理终端应用新的设置。
c. 要测试NSAPI插件,打开浏览器并把URL设置为Enterprise服务器+ “/weblogic”,这 将会启用缺省的WebLogc HTTP servlet,如下所示:
http://myenterprise.server.com/weblogic/
参数 参数 参数 参数
NSAPI可以识别以下参数:
注意在配置 WebLogic 集群时:必须使用 WebLogicCluster 参数而不是 WebLogicHost与WebLogicPort参数。
WebLogicHost=domain name
必需的参数(如果使用WebLogic集群,则应该使用WebLogicCluster参数。)。HTTP 请求将被转交到该参数定义的WebLogic主机中。
WebLogicPort=port (相当于早期的TengahPort)
必需的参数(如果使用 WebLogic 集群,则应该使用 WebLogicCluster 参数。)。
- 131 - WebLogic主机将在该参数所设置的端口监听WebLogic连接请求。
WebLogicCluster=cluster list
必需的参数(如果是使用WebLogic集群)。该参数列出了集群中的WebLogic服务器。
列表中的每个条目必需遵照host:port的格式。例如:
WebLogicCluster="myweblogic.com:7001,
yourweblogic.com:6999,theirweblogic.com:6001"
如 果 使 用 WebLogic 集 群 , 那 么 应 该 用 这 个 参 数 , 而 不 是 WebLogicHost 与 WebLogicPort参数。WebLogic服务器会首先查找WebLogicCluster参数,如果没有 找到该参数,它将继续查找并使用WebLogicHost与WebLogicPort参数。(如果所有 这些参数都找不到,它将寻找并使用TengahHost与TengahPort参数)
插件会在可使用的集群成员中进行简单的负载计算,如果一个成员不能被连接,那么该成员 将被标记为“坏的”,然后在试着用其它的成员,在此成员被跳过10次之后, 会再次尝试 使用该成员,如果成功,那么将改变它的状态。
插件会把包含cookie的HTTP请求递交到集群中创建该cookie的服务器。
PathTrim=string
在把请求转交给WebLogic之前,将会从原始的WebLogicURL中裁减掉该参数所设置的 字符串。缺省为“”
path可能会作为webLogic URL的一部分传递到WebLogic中,也可能会被剥离,这取 决于 Object 标签中 PathTrim 的设置。例如,一个典型的将请求代理到 WebLogic的 Object标签看上去应该如下面所示:
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl-proxy WebLogicHost=myweblogic.server.com\
WebLogicPort=7001\
PathTrim="/weblogic"
</Object>
ppath设置了将URL递交到Enterprise服务器的方式,例如:
http://myenterprise.server.com/weblogic/
将被转交给 WebLogic 服务器进行语义分析。因为 PathTrim 被设置为从 URL 中剥离
“/weblogic”,这一步是在 URL 被交给 WebLogic 服务器之前进行,因而转交到 WebLogic的URL为
http://myweblogic.server.com:7001/
PathPrepend=string
该参数设置了要添加在原始URL中的前缀字符串。添加字符串在裁减PathTrim字符串之 后、把请求转交给WebLogic之前进行发生。缺省为“”
- 132 - ConnectTimeoutSecs=seconds
NSAPI模块尝试连接WebLogic主机的最大时间间隔(以秒为单位)。缺省为10秒,该 参数的值应该大于ConnectRetrySecs参数。如果经过ConnectTimeoutSecs所设定 的时间还未能成功连接,那么将返回一个HTTP 503/Service Unavailable回复。
ConnectRetrySecs=seconds
该参数定义了NSAPI模块在两次连接尝试之间的间隔时间。缺省为2秒,这个参数的值应 该小于ConectTimeoutSecs参数。在把HTTP 503/Service Unavailable回复返回 到客户端之前,NES插件会尝试ConnectTimeoutSects/ConnectRetrySecs次连接。
如果只想进行一次连接尝试,那么把ConnectRetrySecs参数与ConnectTimeoutSecs 参数设置为相同的值。
StatPath=boolean
如果该参数设置为true,那么在把请求转交给WebLogic之前,NSE插件首先检查请求中 的转换路径是否存在以及它的可读权限。该参数的缺省设置为 false。如果文件不存在,
那么会把 HTTP 403/Forbidden 返回到客户端。如果文件存在,但是它的权限不是设置 为 world-readable,那么将返回 HTTP 403/Forbidden 回复。在这两种情况下,
Enterprise 服务器处理这些回复的缺省机制完成回复内容。该选项只能在 WebLogic
Enterprise 服务器处理这些回复的缺省机制完成回复内容。该选项只能在 WebLogic