22.10. Oracle NSAPI Connector
Netscape Server API (NSAPI)是由 Oracle iPlanet Web 服务器(以前为 Netscape Web Server)提供的 API,用于为服务器实施扩展。这些扩展称为服务器插件。NSAPI 连接器在 nsapi_redirector.so
中使用,它是 mod_jk 调整到 Oracle iPlanet Web 服务器的扩展。NSAPI 连接器允许您将 JBoss EAP 实例配置为 worker 节点,并将 Oracle iPlanet Web Server 配置为负载均衡器。
有关 Solaris 和 Oracle iPlanet Web 服务器支持的配置的信息,请参阅 JBoss EAP 支持的配置。
22.10.1. 将 Oracle iPlanet Web Server 配置为使用 NSAPI Connector
先决条件
- JBoss EAP 在充当工作程序的每个服务器上安装和配置。
从红帽客户门户网站下载 NSAPI 连接器:
- 打开浏览器并登录到红帽客户门户网站 JBoss Software Downloads 页面。
- 在产品 下拉菜单中选择 Web Connectors。
- 从 Version 下拉菜单中选择最新的 JBoss Core Services 版本。
- 在列表中找到 Red Hat JBoss Core Services NSAPI Connector,确保为您的系统选择正确的平台和架构,然后点 Download 链接。
-
将位于
lib/
或lib64/
目录的nsapi_redirector.so
文件提取到IPLANET_CONFIG/lib/
或IPLANET_CONFIG/lib/
目录中。
设置 NSAPI 连接器:
在这些说明中,IPLANET_CONFIG
指的是 Oracle iPlanet 配置目录,此目录通常是 /opt/oracle/webserver7/config/
。如果您的 Oracle iPlanet 配置目录不同,请相应地修改说明。
禁用 servlet 映射。
打开
IPLANET_CONFIG/default.web.xml
文件,找到带有 Built In Server Mappings 标题的部分。通过将其嵌套在 XML 注释字符( <!--
和--
>)中,禁用到以下三个 servlet 的映射。- default
- invoker
jsp
以下示例配置显示禁用的映射。
<!-- ============== Built In Servlet Mappings =============== --> <!-- The servlet mappings for the built in servlets defined above. --> <!-- The mapping for the default servlet --> <!--servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping--> <!-- The mapping for the invoker servlet --> <!--servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping--> <!-- The mapping for the JSP servlet --> <!--servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping-->
保存并退出文件。
配置 iPlanet Web 服务器以加载 NSAPI 连接器模块。
将以下行添加到
IPLANET_CONFIG/magnus.conf
文件的末尾,修改要适合您的配置的文件路径。这些行定义nsapi_redirector.so
模块的位置,以及worker.properties
文件,该文件列出了 worker 及其属性。Init fn="load-modules" funcs="jk_init,jk_service" shlib="/lib/nsapi_redirector.so" shlib_flags="(global|now)" Init fn="jk_init" worker_file="IPLANET_CONFIG/connectors/workers.properties" log_level="info" log_file="IPLANET_CONFIG/connectors/nsapi.log" shm_file="IPLANET_CONFIG/connectors/tmp/jk_shm"
以上配置适用于 32 位构架。如果您使用 64 位 Solaris,请将字符串
lib/nsapi_redirector.so
更改为lib64/nsapi_redirector.so
。保存并退出文件。
配置 NSAPI 连接器。
您可以为基本配置配置 NSAPI 连接器,没有负载均衡或负载平衡配置。选择以下选项之一,之后您的配置将完成。
22.10.2. 配置 NSAPI Connector 以向 JBoss EAP 发送客户端请求
此任务配置 NSAPI 连接器,将客户端请求重定向到没有负载均衡或故障转移的 JBoss EAP 服务器。重定向基于每个部署(因此每个 URL)进行。
您必须 已经配置了 NSAPI 连接器,然后才能继续此任务。
设置基本 HTTP Connector
定义重定向到 JBoss EAP 服务器的 URL 路径。
注意在
IPLANET_CONFIG/obj.conf
中,行首不允许使用空格,除非行是前一行的延续。编辑
IPLANET_CONFIG/obj.conf
文件。找到以 < Object name="default"& gt; 开头的部分,并添加要匹配的每个 URL 模式,格式为以下示例文件。字符串 jknsapi 指的是 HTTP 连接器,该连接器将在下一步中定义。示例中显示了使用通配符进行模式匹配。<Object name="default"> [...] NameTrans fn="assign-name" from="/status" name="jknsapi" NameTrans fn="assign-name" from="/images(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/css(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/nc(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/jmx-console(|/*)" name="jknsapi" </Object>
定义提供每个路径的 worker。
继续编辑
IPLANET_CONFIG/obj.conf
文件。在您刚刚完成编辑的部分的关闭标签后直接添加以下内容:</ Object>。<Object name="jknsapi"> ObjectType fn=force-type type=text/plain Service fn="jk_service" worker="worker01" path="/status" Service fn="jk_service" worker="worker02" path="/nc(/*)" Service fn="jk_service" worker="worker01" </Object>
上面的示例将请求重定向到名为 worker01 的 worker 路径 /status,并将
/nc/
下的所有 URL 路径重定向到名为 worker02 的 worker。第三行表示分配给 jknsapi 对象的所有 URL 与上一行不匹配的所有 URL 都提供给 worker01。保存并退出文件。
定义 worker 及其属性。
在
IPLANET_CONFIG/connectors/
目录中创建一个名为worker.properties
的文件。将以下内容粘贴到 文件中,并将其修改为适合您的环境。# An entry that lists all the workers defined worker.list=worker01, worker02 # Entries that define the host and port associated with these workers worker.worker01.host=127.0.0.1 worker.worker01.port=8009 worker.worker01.type=ajp13 worker.worker02.host=127.0.0.100 worker.worker02.port=8009 worker.worker02.type=ajp13
worker.properties
文件使用与 Apache mod_jk 相同的语法。保存并退出文件。
重启 iPlanet Web 服务器
发出以下命令以重新启动 iPlanet Web 服务器。
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startserv
iPlanet Web 服务器现在将客户端请求发送到您在 JBoss EAP 上进行部署的 URL。
22.10.3. 将 NSAPI Connector 配置为跨多个 JBoss EAP 服务器的 Balance 客户端请求
此任务配置 NSAPI 连接器,以在负载平衡配置中将客户端请求发送到 JBoss EAP 服务器。
您必须 已经配置了 NSAPI 连接器,然后才能继续此任务。
为负载平衡配置连接器
定义重定向到 JBoss EAP 服务器的 URL 路径。
注意在
IPLANET_CONFIG/obj.conf
中,行首不允许使用空格,除非行是前一行的延续。编辑
IPLANET_CONFIG/obj.conf
文件。找到以 <Object name="default"&
gt; 开头的部分,并添加要匹配的每个 URL 模式,格式为以下示例文件。字符串jknsapi
指的是将在下一步中定义的 HTTP 连接器。示例中显示了使用通配符进行模式匹配。<Object name="default"> [...] NameTrans fn="assign-name" from="/status" name="jknsapi" NameTrans fn="assign-name" from="/images(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/css(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/nc(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/jmx-console(|/*)" name="jknsapi" NameTrans fn="assign-name" from="/jkmanager/*" name="jknsapi" </Object>
定义提供每个路径的 worker。
继续编辑
IPLANET_CONFIG/obj.conf
文件。直接在您在上一步中修改的部分的右标签(</Object>
)后,添加以下新部分并将其修改为您的需要:<Object name="jknsapi"> ObjectType fn=force-type type=text/plain Service fn="jk_service" worker="status" path="/jkmanager(/*)" Service fn="jk_service" worker="router" </Object>
这个
jksnapi
对象定义了用于为默认
对象中映射到name="jksnapi"
映射的每个路径的 worker 节点。除与/jkmanagerAttr
匹配的 URL 外的所有内容都会被重定向到名为路由器
的 worker。定义 worker 及其属性。
在
IPLANET_CONFIG/connector/
中创建一个名为worker.properties
的文件。将以下内容粘贴到 文件中,并将其修改为适合您的环境。# The advanced router LB worker # A list of each worker worker.list=router,status # First JBoss EAP server # (worker node) definition. # Port 8009 is the standard port for AJP # worker.worker01.port=8009 worker.worker01.host=127.0.0.1 worker.worker01.type=ajp13 worker.worker01.ping_mode=A worker.worker01.socket_timeout=10 worker.worker01.lbfactor=3 # Second JBoss EAP server worker.worker02.port=8009 worker.worker02.host=127.0.0.100 worker.worker02.type=ajp13 worker.worker02.ping_mode=A worker.worker02.socket_timeout=10 worker.worker02.lbfactor=1 # Define the load-balancer called "router" worker.router.type=lb worker.router.balance_workers=worker01,worker02 # Define the status worker worker.status.type=status
worker.properties
文件使用与 Apache mod_jk 相同的语法。保存并退出文件。
重启 iPlanet Web Server 7.0。
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startserv
iPlanet Web 服务器将 URL 模式重定向到您在负载平衡配置中配置的 JBoss EAP 服务器。