﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-花钱的岁月-随笔分类-weblogic</title><link>http://www.blogjava.net/hjh/category/27299.html</link><description>付出总是有回报的</description><language>zh-cn</language><lastBuildDate>Tue, 13 Nov 2007 09:08:42 GMT</lastBuildDate><pubDate>Tue, 13 Nov 2007 09:08:42 GMT</pubDate><ttl>60</ttl><item><title>安装和配置 Apache HTTP Server 插件</title><link>http://www.blogjava.net/hjh/archive/2007/11/13/160200.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Tue, 13 Nov 2007 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2007/11/13/160200.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/160200.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2007/11/13/160200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/160200.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/160200.html</trackback:ping><description><![CDATA[<h2 class="pHeading1"><del><a name="wp101251"></a></del>Apache HTTP Server 插件概述<a name="overview"></a> </h2>
<p class="pBody"><del><a name="wp104103"></a></del>Apache HTTP Server 插件允许将请求从 Apache HTTP Server 代理到 WebLogic Server。该插件允许 WebLogic Server 处理要求使用 WebLogic Server 动态功能的请求，从而增强了 Apache 安装。 </p>
<p class="pBody"><del><a name="wp104107"></a></del>该插件专用于某种环境，在这样的环境中，Apache Server 提供静态页，而文档树的另一个部分（最好是由 HTTP Servlet 或 Java Server Page 生成的动态页）会委托给可以在不同的进程中（可能在不同的主机上）进行操作的 WebLogic Server。对于最终用户（浏览器），委托给 WebLogic Server 的 HTTP 请求看似仍然来自同一个来源。 </p>
<p class="pBody"><del><a name="wp104214"></a></del>HTTP 隧道是一种技术，它允许 HTTP 请求和响应通过公司的防火墙进行访问。它也可以通过插件操作，提供对 WebLogic Server 服务的非浏览器客户端访问。 </p>
<p class="pBody"><del><a name="wp103183"></a></del>Apache HTTP Server 插件充当 Apache HTTP Server 中的 Apache 模块。Apache 模块由 Apache Server 在启动时加载，然后某些 HTTP 请求会委托给它。Apache 模块类似于 HTTP Servlet（除了 Apache 模块是用平台本地代码编写的之外）。 </p>
<p class="pBody"><del><a name="wp131302"></a></del>有关支持 Apache HTTP Server 插件的配置的信息，请参阅 <span class="cHyperlink"><a href="http://edocs.bea.com/platform/suppconfigs/configs92/92_over/add-ons.html">http://edocs.bea.com/platform/suppconfigs/configs92/92_over/add-ons.html</a></span>。 </p>
<h3 class="pHeading2"><del><a name="wp112640"></a></del>Apache 2.0 版中的保持活动连接 </h3>
<p class="pBody"><del><a name="wp112690"></a></del>2.0 版的 Apache HTTP Server 插件通过使用从插件到 WebLogic Server 的可重用连接缓冲池提高了性能。该插件通过对来自同一客户端的后续请求重用缓冲池中的同一连接，在插件和 WebLogic Server 之间实现了 HTTP 1.1 保持活动连接。如果连接处于非活动状态的时间超过 30 秒（或用户定义的时间），则会关闭该连接并将其返回到缓冲池中。可以根据需要禁用此功能。有关详细信息，请参阅&#8220;KeepAliveEnabled&#8221;。 </p>
<h3 class="pHeading2"><del><a name="wp113252"></a></del>代理请求 </h3>
<p class="pBody"><del><a name="wp131486"></a></del>插件根据指定的配置将请求代理到 WebLogic Server。可以根据请求的 URL（或 URL 的一个部分）代理请求。这称为按路径进行代理。<em class="cEmphasis"></em>还可以根据请求文件的<em class="cEmphasis"></em> MIME 类型代理请求。或者可以使用这两种方法的组合。如果请求同时符合这两个条件，则按路径代理请求。同时，可以为每种类型的请求指定其他参数，来定义插件的其他行为。有关详细信息，请参阅<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp130946"><span class="cHyperlink">配置 Apache HTTP Server 插件</span></a>。 </p>
<h3 class="pHeading2"><del><a name="wp131497"></a></del>Apache 2.2 </h3>
<p class="pBody"><del><a name="wp131498"></a></del>尽管此文档讨论的是 Apache 2.0，您可应用同样的说明来使用具有<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp126678">表&nbsp;3-2</a> 中所示的库的 Apache 2.2。 </p>
<h3 class="pHeading2"><del><a name="wp131493"></a></del>证书<a name="platform"></a> </h3>
<p class="pBody"><del><a name="wp131390"></a></del>Linux、Solaris、Windows 和 HPUX11 平台支持 Apache HTTP Server 插件。有关对特定 Apache 版本的支持信息，请参阅 <span class="cHyperlink"><a href="http://edocs.bea.com/platform/suppconfigs/configs92/92_over/add-ons.html">http://edocs.bea.com/platform/suppconfigs/configs92/92_over/add-ons.html</a></span>。 </p>
<p>&nbsp;</p>
<hr noShade />
<h2 class="pHeading1"><del><a name="wp131399"></a></del>安装 Apache HTTP Server 插件<a name="install"></a> </h2>
<p class="pBody"><del><a name="wp112704"></a></del>可将 Apache HTTP Server 插件作为 Apache HTTP Server 安装中的 Apache 模块进行安装，并将其作为动态共享对象（Dynamic Shared Object，简称 DSO）进行链接。 </p>
<p class="pBody"><del><a name="wp127906"></a></del>DSO 作为服务器在运行时动态加载的库进行编译，可以在不重新编译 Apache 的情况下安装。 </p>
<h3 class="pHeading2"><del><a name="wp114478"></a></del>将 Apache HTTP Server 插件作为动态共享对象安装 </h3>
<p class="pBody"><del><a name="wp126732"></a></del>Apache 插件作为 Solaris、Linux、Windows 和 HPUX11 平台的共享对象 (<code class="cCode">.so</code>) 分发。BEA WebLogic 提供因平台、是否要在客户端和 Apache 之间使用 SSL 以及 SSL 加密强度（常规或 128 位 - 只有在安装 128 位版本的 WebLogic Server 时才会安装 128 位版本）而异的共享对象文件版本。 </p>
<p class="pBody"><del><a name="wp127393"></a></del><a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp131188">表&nbsp;3-1</a> 显示包含各种平台的共享对象文件的 WebLogic Server 安装目录（其中 WL_HOME 是 WebLogic 平台的顶级安装目录）。 </p>
<p class="pBody"><del><a name="wp131123"></a></del><a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp126678">表&nbsp;3-2</a> 针对不同版本的 Apache HTTP Server 和不同加密强度来标识 WebLogic Server Apache 插件模块。 </p>
<p class="pGraphic"><del><a name="wp126733"></a></del></p>
<div align="left">
<table class="table" id="wp131188table126744" cellspacing="0" cellpadding="3">
    <caption><del><a name="wp131188"></a></del>表 3-1 插件共享对象文件的位置 </caption>
    <tbody>
        <tr valign="top" align="center" bgcolor="#cccccc">
            <th scope="col">
            <div class="pCellHeading"><del><a name="wp131192"></a></del>操作系统 </div>
            </th>
            <th scope="col">
            <div class="pCellHeading"><del><a name="wp131194"></a></del>共享对象位置 </div>
            </th>
        </tr>
        <tr valign="top" align="left">
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131196"></a></del>Solaris </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131198"></a></del><code class="cCode">WL_HOME/weblogic92/server/plugin/solaris/sparc</code> </div>
            </td>
        </tr>
        <tr valign="top" align="left">
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131200"></a></del>Linux </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131202"></a></del><code class="cCode">WL_HOME/weblogic92/server/plugin/linux/i686</code> </div>
            <div class="pCellBody"><del><a name="wp131203"></a></del><code class="cCode">WL_HOME/weblogic92/server/plugin/linux/ia64</code> </div>
            <div class="pCellBody"><del><a name="wp131204"></a></del><code class="cCode">WL_HOME/weblogic92/server/plugin/linux/s390</code> </div>
            </td>
        </tr>
        <tr valign="top" align="left">
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131206"></a></del>Windows（仅适用于 Apache 2.0） </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131208"></a></del><code class="cCode">WL_HOME\weblogic92\server\plugin\win\32 </code>或 </div>
            <div class="pCellBody"><del><a name="wp131209"></a></del><code class="cCode">WL_HOME\weblogic92\server\plugin\win\64</code> </div>
            </td>
        </tr>
        <tr valign="top" align="left">
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131211"></a></del>HPUX11 </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131213"></a></del><code class="cCode">WL_HOME/weblogic92/server/plugin/hpux11/IPF64</code> </div>
            <div class="pCellBody"><del><a name="wp131214"></a></del><code class="cCode">WL_HOME/weblogic92/server/plugin/hpux11/PA_RISC</code> </div>
            <del><a name="wp131215"></a></del>
            <table class="Note">
                <tbody>
                    <tr>
                        <td valign="top"><strong>警告：</strong></td>
                        <td>如果在 HP-UX11 上运行 Apache 2.0.x Server，请在构建 Apache Server 之前设置下面紧邻的环境变量。由于 HP-UX 上加载链接库的顺序问题，如果在生成之前未将加载顺序预设为环境变量，则可能导致核心转储。设置下列环境变量，然后继续 Apache <code class="cCode">configure</code>, <code class="cCode">make</code> 和 <code class="cCode">make install</code> 步骤（在 Apache HTTP Server 文档中描述了这些步骤，该文档位于 <span class="cHyperlink"><a href="http://httpd.apache.org/docs-2.1/install.html#configure">http://httpd.apache.org/docs-2.1/install.html#configure</a></span>）： </td>
                    </tr>
                </tbody>
            </table>
            <del><a name="wp131217"></a></del>
            <div class="pPreformattedRelative">
            <pre>export EXTRA_LDFLAGS="-lstd -lstream -lCsup -lm -lcl -ldld -lpthread"</pre>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p class="pGraphic"></p>
<p class="pBody"><del><a name="wp126612"></a></del>从下表中选择适当的插件共享对象版本： </p>
<p class="pGraphic"><del><a name="wp126646"></a></del></p>
<div align="left">
<table class="table" id="wp126678table126613" cellspacing="0" cellpadding="3">
    <caption><del><a name="wp126678"></a></del>表 3-2 Apache 插件共享对象文件版本 </caption>
    <tbody>
        <tr valign="top" align="center" bgcolor="#cccccc">
            <th scope="col">
            <div class="pCellHeading"><del><a name="wp126615"></a></del>Apache 版本 </div>
            </th>
            <th scope="col">
            <div class="pCellHeading"><del><a name="wp126617"></a></del>常规强度的加密 </div>
            </th>
            <th scope="col">
            <div class="pCellHeading"><del><a name="wp126619"></a></del>128 位加密 </div>
            </th>
        </tr>
        <tr valign="top" align="left">
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp126641"></a></del>标准 Apache 2.0.x 版 </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp126643"></a></del><code class="cCode">mod_wl_20.so</code> </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp126645"></a></del><code class="cCode">mod_wl28_20.so</code> </div>
            </td>
        </tr>
        <tr valign="top" align="left">
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131511"></a></del>标准 Apache 2.2.x 版 </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131513"></a></del><code class="cCode">mod_wl_22.so</code> </div>
            </td>
            <td class="table" scope="row">
            <div class="pCellBody"><del><a name="wp131515"></a></del><code class="cCode">mod_wl28_22.so</code> </div>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p class="pGraphic"></p>
<p class="pBody"><del><a name="wp114479"></a></del>要将 Apache HTTP Server 插件作为动态共享对象安装，请执行下列操作： </p>
<div class="pSmartList1">
<ol class="pSmartList1" type="1">
    <li><del><a name="wp100376"></a></del>使用<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp131188">表&nbsp;3-1</a> 找到您的平台的共享对象目录。
    <li><del><a name="wp126927"></a></del>在<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp126678">表&nbsp;3-2</a> 中确定您的 Apache 版本的插件共享对象文件。
    <li><del><a name="wp115919"></a></del>验证是否已启用 WebLogic Server Apache HTTP Server 插件 <code class="cCode">mod_so.c</code> 模块。
    <p class="pBodyRelative"><del><a name="wp104574"></a></del>Apache HTTP Server 插件将作为动态共享对象 (DSO) 安装在 Apache HTTP Server 安装中。Apache 中的 DSO 支持是基于模块 <code class="cCode">mod_so.c</code> 的，必须在加载 mod_wl_20.so 之前启用该模块。如果使用 Apache 提供的脚本安装 Apache HTTP Server，则 <code class="cCode">mod_so.c</code>已被启用。通过执行以下命令，验证是否已启用 <code class="cCode">mod_so.c</code>： </p>
    <del><a name="wp100386"></a></del>
    <div class="pPreformattedRelative">
    <pre><code class="cCodeEmphasis">APACHE_HOME</code>\bin\apache -l</pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp104575"></a></del>（其中 <code class="cCodeEmphasis">APACHE_HOME</code> 是包含 Apache HTTP Server 安装的目录。） </p>
    <p class="pBodyRelative"><del><a name="wp100387"></a></del>此命令会列出所有已启用的模块。如果未列出 <code class="cCode">mod_so.c</code>，则必须重新生成 Apache HTTP Server，以确保配置下列选项： </p>
    <del><a name="wp112735"></a></del>
    <div class="pPreformattedRelative">
    <pre>...<br />
    --enable-module=so<br />
    --enable-rule=SHARED_CORE<br />
    ...</pre>
    </div>
    <del><a name="wp131016"></a></del>
    <div class="pPreformattedRelative">
    <pre>请参阅位于 <a href="http://httpd.apache.org/docs/2.0/dso.html"><span class="cHyperlink">
    http://httpd.apache.org/docs/2.0/dso.html</span></a> 的&#8220;Apache 2.0 Shared Object (DSO) Support&#8221;。</pre>
    </div>
    <li><del><a name="wp120315"></a></del>将 <code class="cCode">mod_wl_20.so</code> 文件复制到 <code class="cCodeEmphasis">APACHE_HOME</code><code class="cCode">\modules</code> 目录中，并将以下行手工添加到 <code class="cCodeEmphasis">APACHE_HOME</code>/<span style="font-style: italic">conf/httpd.conf</span> 文件中，为 Apache 2.0.x 版安装 Apache HTTP Server 插件模块： <del><a name="wp120308"></a></del>
    <div class="pPreformattedRelative">
    <pre>LoadModule weblogic_module     modules/mod_wl_20.so</pre>
    </div>
    <li><del><a name="wp124688"></a></del>为 Apache HTTP Server 插件定义任何其他参数。
    <p class="pBodyRelative"><del><a name="wp124696"></a></del>Apache HTTP Server 插件可识别 <a name="params"></a><a href="http://edocs.bea.com.cn/wls/docs92/plugins/plugin_params.html#wp1143055">Web 服务器插件的常规参数</a>中列出的参数。要修改 Apache HTTP Server 插件的行为，请在以下块中定义这些参数： </p>
    <div class="pSmartList2Bullet">
    <ul>
        <li><del><a name="wp124701"></a></del>在 <code class="cCode">Location</code> 块中，定义适用于按路径<em class="cEmphasis" style="font-style: italic"></em>进行的代理的参数
        <li><del><a name="wp124702"></a></del>在 <code class="cCode">IfModule</code> 块中，定义适用于按 MIME 类型<em class="cEmphasis" style="font-style: italic"></em>进行的代理的参数 </li>
    </ul>
    </div>
    <li><del><a name="wp119188"></a></del>使用下列命令验证 <code class="cCodeEmphasis">APACHE_HOME</code>\conf\httpd.conf 文件的语法： <del><a name="wp119190"></a></del>
    <div class="pPreformattedRelative">
    <pre>APACHE_HOME\bin\apachectl -t </pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp119191"></a></del>此命令的输出将报告 <code class="cCode">httpd.conf</code> 文件中的任何错误或返回： </p>
    <del><a name="wp126203"></a></del>
    <div class="pPreformattedRelative">
    <pre>Syntax OK</pre>
    </div>
    <li><del><a name="wp100400"></a></del>重新启动 Weblogic Server。
    <li><del><a name="wp105740"></a></del>启动（或重新启动，如果已更改配置）Apache HTTP Server。
    <li><del><a name="wp130911"></a></del>通过打开浏览器并将 URL 设置为 Apache Server +&#8220;<code class="cCode">/weblogic/</code>&#8221;（这将打开默认 WebLogic Server HTML 页、欢迎文件或默认 Servlet，如 WebLogic Server 上对默认 Web 应用程序的定义）来测试插件。例如： <del><a name="wp130940"></a></del>
    <div class="pPreformattedRelative">
    <pre>http://myApacheserver.com/weblogic/</pre>
    </div>
    </li>
</ol>
</div>
<p>&nbsp;</p>
<hr noShade />
<h2 class="pHeading1"><del><a name="wp130946"></a></del>配置 Apache HTTP Server 插件<a name="httpd-conf"></a> </h2>
<p class="pBody"><del><a name="wp109477"></a></del>在 Apache HTTP Server 中安装插件后，需要对 WebLogic Server Apache 插件进行配置并将服务器配置为使用该插件。本部分说明如何编辑 Apache <code class="cCode">httpd.conf</code> 文件以指示 Apache 服务器为作为 Apache 模块的插件加载 WebLogic Server 库，并指定应由该模块处理的应用程序请求。 </p>
<h3 class="pHeading2"><del><a name="wp110943"></a></del>编辑 httpd.conf 文件 </h3>
<p class="pBody"><del><a name="wp100404"></a></del>编辑 Apache HTTP Server 安装中的 <code class="cCode">httpd.conf</code> 文件以配置 Apache HTTP Server 插件。 </p>
<p class="pBody"><del><a name="wp125858"></a></del>本部分说明如何查找和编辑 <code class="cCode">httpd.conf</code> 文件以实现下列操作：配置服务器以使用 WebLogic Server Apache 插件、按路径或 MIME 类型代理请求、启用 HTTP 隧道，以及使用其他 WebLogic Server 插件参数。 </p>
<div class="pSmartList1">
<ol class="pSmartList1" type="1">
    <li><del><a name="wp110662"></a></del>打开 <code class="cCode">httpd.conf</code> 文件。
    <p class="pBodyRelative"><del><a name="wp128129"></a></del>该文件位于 <span style="font-style: italic">APACHE_</span><code class="cCodeEmphasis">HOME</code><code class="cCode">\conf\httpd.conf</code>（其中 APACHE_<code class="cCode" style="font-style: normal">HOME</code><span style="font-style: italic"> </span>是 Apache HTTP Server 安装的根目录）。请参阅<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp102410">设置边界身份验证</a>中的示例 <code class="cCode">httpd.conf</code> 文件。 </p>
    <li><del><a name="wp110663"></a></del>确保 Apache 2.0.x 中包含 WebLogic Server 模块，手工将下面的行添加到 <code class="cCode">httpd.conf</code> 文件中。 <del><a name="wp119205"></a></del>
    <div class="pPreformattedRelative">
    <pre>LoadModule weblogic_module   modules\mod_wl_20.so</pre>
    </div>
    <li><del><a name="wp100407"></a></del>添加用于定义以下参数之一的 <code class="cCode">IfModule</code> 块：
    <p class="pBodyRelative"><del><a name="wp109640"></a></del>对于非群集 <em class="cEmphasis"></em>WebLogic Server： </p>
    <p class="pBodyRelative"><del><a name="wp109647"></a></del>WebLogicHost 和 WebLogicPort 参数。 </p>
    <p class="pBodyRelative"><del><a name="wp109648"></a></del>对于 <em class="cEmphasis"></em>WebLogic Server 群集： </p>
    <p class="pBodyRelative"><del><a name="wp109652"></a></del>WebLogicCluster 参数。 </p>
    <p class="pBodyRelative"><del><a name="wp109776"></a></del>例如： </p>
    <del><a name="wp109665"></a></del>
    <div class="pPreformattedRelative">
    <pre>&lt;IfModule mod_weblogic.c&gt;<br />
    &nbsp;&nbsp;WebLogicHost myweblogic.server.com<br />
    &nbsp;&nbsp;WebLogicPort 7001<br />
    &lt;/IfModule&gt;</pre>
    </div>
    <li><del><a name="wp109663"></a></del>要按 MIME 类型代理请求，请将 <code class="cCode">MatchExpression</code> 行添加到 <code class="cCode">IfModule</code> 块中。请注意，如果同时启用按 MIME 类型进行的代理和按路径进行的代理，则按路径进行的代理优先于按 MIME 类型进行的代理。
    <p class="pBodyRelative"><del><a name="wp112865"></a></del>例如，以下针对非群集 WebLogic Server 的 <code class="cCode">IfModule</code> 块指定代理具有 MIME 类型 <code class="cCode">.jsp</code> 的所有文件： </p>
    <del><a name="wp109743"></a></del>
    <div class="pPreformattedRelative">
    <pre>&lt;IfModule mod_weblogic.c&gt;<br />
    &nbsp;&nbsp;WebLogicHost myweblogic.server.com<br />
    &nbsp;&nbsp;WebLogicPort 7001<br />
    &nbsp;&nbsp;MatchExpression *.jsp<br />
    &lt;/IfModule&gt;</pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp109868"></a></del>也可以使用多个 <code class="cCode">MatchExpressions</code>，例如： </p>
    <del><a name="wp109869"></a></del>
    <div class="pPreformattedRelative">
    <pre><code class="cCode">&lt;IfModule mod_weblogic.c&gt;<br />
    </code>&nbsp;&nbsp;WebLogicHost myweblogic.server.com<br />
    &nbsp;&nbsp;WebLogicPort 7001<br />
    <code class="cCode">&nbsp;&nbsp;MatchExpression *.jsp<br />
    &nbsp;&nbsp;MatchExpression *.xyz<br />
    &lt;/IfModule&gt;</code></pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp109850"></a></del>如果要按 MIME 类型将请求代理到 WebLogic Server 群集，请使用 <a href="http://edocs.bea.com.cn/wls/docs92/plugins/plugin_params.html#wp1155261"><code class="cCode">WebLogicCluster</code></a> 参数，而不使用 <code class="cCode">WebLogicHost</code> 和 <code class="cCode">WebLogicPort</code> 参数。例如： </p>
    <del><a name="wp110204"></a></del>
    <div class="pPreformattedRelative">
    <pre><code class="cCode">&lt;IfModule mod_weblogic.c&gt;<br />
    </code>&nbsp;&nbsp;WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001<br />
    <code class="cCode">&nbsp;&nbsp;MatchExpression *.jsp<br />
    &nbsp;&nbsp;MatchExpression *.xyz<br />
    &lt;/IfModule&gt;</code></pre>
    </div>
    <li><del><a name="wp124637"></a></del>要按路径代理请求，请使用 <code class="cCode">Location</code> 块和 <code class="cCode">SetHandler</code> 语句。<code class="cCode" style="font-weight: normal">SetHandler</code><span style="font-weight: bold"> </span>指定Apache HTTP Server 插件模块的处理程序。例如，以下位置块代理 URL 中包含 <code class="cCode">/weblogic</code> 的所有请求： <del><a name="wp124641"></a></del>
    <div class="pPreformattedRelative">
    <pre>&lt;Location /weblogic&gt;<br />
    SetHandler weblogic-handler<br />
    PathTrim /weblogic<br />
    &lt;/Location&gt;</pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp124642"></a></del>PathTrim 参数指定在将请求传递到 WebLogic Server 实例之前从 URL 的开始部分剪切的字符串（请参阅 <a href="http://edocs.bea.com.cn/wls/docs92/plugins/plugin_params.html#wp1143055"><span class="cHyperlink">Web 服务器插件的常规参数</span></a>）。 </p>
    <li><del><a name="wp124662"></a></del>（可选）对 t3 或 IIOP 启用 HTTP 隧道。
    <div class="pSmartList2">
    <ol class="pSmartList2" type="a">
        <li><del><a name="wp124643"></a></del>要在使用 t3 协议和 <code class="cCode">weblogic.jar</code> 时启用 HTTP 隧道，请将以下 Location 块添加到 <code class="cCode">httpd.conf</code> 文件中： <del><a name="wp122801"></a></del>
        <div class="pPreformattedRelative">
        <pre>&lt;Location /HTTPClnt&gt;<br />
        SetHandler weblogic-handler<br />
        &lt;/Location&gt;</pre>
        </div>
        <li><del><a name="wp122766"></a></del>要在使用 IIOP（WebLogic Server 瘦客户端 <code class="cCode">wlclient.jar</code>使用的唯一协议）时启用 HTTP 隧道，请将以下 Location 块添加到 <code class="cCode">httpd.conf</code> 文件中： <del><a name="wp122811"></a></del>
        <div class="pPreformattedRelative">
        <pre>&lt;Location /iiop&gt;<br />
        SetHandler weblogic-handler<br />
        &lt;/Location&gt;</pre>
        </div>
        </li>
    </ol>
    </div>
    <li><del><a name="wp122734"></a></del>为 Apache HTTP Server 插件定义任何其他参数。
    <p class="pBodyRelative"><del><a name="wp110588"></a></del>Apache HTTP Server 插件可识别 <a name="params"></a><a href="http://edocs.bea.com.cn/wls/docs92/plugins/plugin_params.html#wp1143055"><span class="cHyperlink">Web 服务器插件的常规参数中列出的参数</span></a><span class="cHyperlink">。</span>要修改 Apache HTTP Server 插件的行为，请在以下块中定义这些参数： </p>
    <div class="pSmartList2Bullet">
    <ul>
        <li><del><a name="wp110696"></a></del>在 <code class="cCode">Location</code> 块中，定义适用于按路径<em class="cEmphasis" style="font-style: italic"></em>进行的代理的参数
        <li><del><a name="wp110856"></a></del>在 <code class="cCode">IfModule</code> 块中，定义适用于按 MIME 类型<em class="cEmphasis" style="font-style: italic"></em>进行的代理的参数 </li>
    </ul>
    </div>
    </li>
</ol>
</div>
<h3 class="pHeading2"><del><a name="wp110857"></a></del>将 weblogic.conf 文件包括在 httpd.conf 文件中 </h3>
<p class="pBody"><del><a name="wp110894"></a></del>如果希望保留几个单独的配置文件，则可通过在 <code class="cCode">httpd.conf</code>文件的 <code class="cCode">IfModule</code> 块中使用 Apache Include 指令，在名为 <code class="cCode">weblogic.conf</code> 文件的单独配置文件中定义参数： </p>
<del><a name="wp110858"></a></del>
<div class="pPreformattedRelative">
<pre><code class="cCode">&lt;IfModule mod_weblogic.c&gt;<br />
# Config file for WebLogic Server that defines the parameters<br />
Include conf/weblogic.conf <br />
&lt;/IfModule&gt;</code></pre>
</div>
<p class="pBody"><del><a name="wp124850"></a></del><code class="cCode">weblogic.conf</code> 文件的语法与 <code class="cCode">httpd.conf</code> 文件的语法相同。 </p>
<p class="pBody"><del><a name="wp125710"></a></del>本部分描述如何创建 <code class="cCode">weblogic.conf</code> 文件，并包括示例 <code class="cCode">weblogic.conf</code> 文件。 </p>
<h4 class="pHeading3"><del><a name="wp125341"></a></del>创建 weblogic.conf 文件 </h4>
<p class="pBody"><del><a name="wp125320"></a></del>构造 <code class="cCode">weblogic.conf</code> 文件时，请注意下列事项： </p>
<div class="pSmartList1Bullet">
<ul>
    <li><del><a name="wp125435"></a></del>如果要在 Apache HTTP Server 插件和 WebLogic Server 之间使用 SSL，则无法在通过 Apache <code class="cCode">Include</code> 指令访问的文件（与 <code class="cCode">weblogic.conf</code>文件一样）中定义参数。
    <li><del><a name="wp125427"></a></del>在新行上输入每一个参数。请不要在参数和参数值之间放置&#8220;=&#8221;。例如： <del><a name="wp100426"></a></del>
    <div class="pPreformattedRelative">
    <pre>PARAM_1 value1<br />
    PARAM_2 value2<br />
    PARAM_3 value3</pre>
    </div>
    <li><del><a name="wp110958"></a></del>如果请求既与 <code class="cCode">IfModule</code> 块中的 <code class="cCode">MatchExpression</code> 中指定的 MIME 类型匹配，又与 <code class="cCode">Location</code> 块中指定的路径匹配，则 <code class="cCode">Location</code> 块指定的行为优先。
    <li><del><a name="wp125380"></a></del>如果要定义 <code class="cCode">CookieName</code> 参数<a href="http://edocs.bea.com.cn/wls/docs92/webapp/weblogic_xml.html#session-descriptor"></a>，则必须在 <code class="cCode">IfModule</code> 块中定义它。
    <li><del><a name="wp125463"></a></del>如果使用 Apache HTTP Server <code class="cCode">&lt;VirtualHost&gt;</code> 块，则必须在 <code class="cCode">&lt;VirtualHost&gt;</code> 块中包括虚拟主机的所有配置参数（例如 <code class="cCode">MatchExpression</code>）（请参阅 <span class="cHyperlink"><a href="http://httpd.apache.org/docs/vhosts/">Apache Virtual Host documentation</a></span>）。
    <li><del><a name="wp128591"></a></del>如果希望只为环境中的所有虚拟主机配置一个日志文件，则可以使用全局属性来实现。可以在 &lt;IfModule&gt; 标记中一次指定 Debug、WLLogFile 和 WLTempDir 属性，而不是在每个虚拟主机中指定相同的 Debug、WLLogFile 和 WLTempDir 属性。
    <li><del><a name="wp128592"></a></del>示例 httpd.conf 文件： <del><a name="wp128593"></a></del>
    <div class="pPreformatted">
    <pre>&lt;IfModule mod_weblogic.c&gt;</pre>
    </div>
    <del><a name="wp128594"></a></del>
    <div class="pPreformatted">
    <pre>  WebLogicCluster	agarwalp02:8005,agarwalp02:8006</pre>
    </div>
    <del><a name="wp128595"></a></del>
    <div class="pPreformatted">
    <pre>  Debug 		ON</pre>
    </div>
    <del><a name="wp128596"></a></del>
    <div class="pPreformatted">
    <pre>  WLLogFile             c:/tmp/global_proxy.log </pre>
    </div>
    <del><a name="wp128597"></a></del>
    <div class="pPreformatted">
    <pre>  WLTempDir             "c:/myTemp"</pre>
    </div>
    <del><a name="wp128598"></a></del>
    <div class="pPreformatted">
    <pre>  DebugConfigInfo       On</pre>
    </div>
    <del><a name="wp128599"></a></del>
    <div class="pPreformatted">
    <pre>  KeepAliveEnabled ON</pre>
    </div>
    <del><a name="wp128600"></a></del>
    <div class="pPreformatted">
    <pre>  KeepAliveSecs  15</pre>
    </div>
    <del><a name="wp128601"></a></del>
    <div class="pPreformatted">
    <pre>&lt;/IfModule&gt;</pre>
    </div>
    <del><a name="wp128602"></a></del>
    <div class="pPreformatted">
    <pre>&lt;Location /jurl&gt;</pre>
    </div>
    <del><a name="wp128603"></a></del>
    <div class="pPreformatted">
    <pre>  SetHandler weblogic-handler</pre>
    </div>
    <del><a name="wp128604"></a></del>
    <div class="pPreformatted">
    <pre>  WebLogicCluster agarwalp01:7001</pre>
    </div>
    <del><a name="wp128605"></a></del>
    <div class="pPreformatted">
    <pre>&lt;/Location&gt;</pre>
    </div>
    <del><a name="wp128606"></a></del>
    <div class="pPreformatted">
    <pre>&lt;Location /web&gt;</pre>
    </div>
    <del><a name="wp128607"></a></del>
    <div class="pPreformatted">
    <pre>  SetHandler weblogic-handler</pre>
    </div>
    <del><a name="wp128608"></a></del>
    <div class="pPreformatted">
    <pre>  PathTrim		/web</pre>
    </div>
    <del><a name="wp128609"></a></del>
    <div class="pPreformatted">
    <pre>  Debug 		OFF</pre>
    </div>
    <del><a name="wp128610"></a></del>
    <div class="pPreformatted">
    <pre>  WLLogFile 		c:/tmp/web_log.log</pre>
    </div>
    <del><a name="wp128611"></a></del>
    <div class="pPreformatted">
    <pre>&lt;/Location&gt;</pre>
    </div>
    <del><a name="wp128613"></a></del>
    <div class="pPreformatted">
    <pre>&lt;Location /foo&gt;</pre>
    </div>
    <del><a name="wp128614"></a></del>
    <div class="pPreformatted">
    <pre>  SetHandler weblogic-handler</pre>
    </div>
    <del><a name="wp128615"></a></del>
    <div class="pPreformatted">
    <pre>  PathTrim		/foo</pre>
    </div>
    <del><a name="wp128616"></a></del>
    <div class="pPreformatted">
    <pre>  Debug 		ERR</pre>
    </div>
    <del><a name="wp128617"></a></del>
    <div class="pPreformatted">
    <pre>  WLLogFile 		c:/tmp/foo_proxy.log</pre>
    </div>
    <del><a name="wp128618"></a></del>
    <div class="pPreformatted">
    <pre>&lt;/Location&gt;</pre>
    </div>
    <li><del><a name="wp128589"></a></del>与 /jurl/* 匹配的所有请求的&#8220;调试级别&#8221;都将设置为&#8220;ALL&#8221;，并会将日志消息记录到 c:/tmp/global_proxy.log 文件中。与 /web/* 匹配的所有请求的&#8220;调试级别&#8221;都将设置为&#8220;OFF&#8221;，并且不会记录任何日志消息。与 /foo/* 匹配的所有请求的&#8220;调试级别&#8221;都将设置为&#8220;ERR&#8221;，并会将日志消息记录到 c:/tmp/foo_proxy.log 文件中。
    <li><del><a name="wp116265"></a></del>BEA 建议使用 <code class="cCode">MatchExpression</code> 语句，而不使用 <code class="cCode">&lt;files&gt;</code> 块。 </li>
</ul>
</div>
<h4 class="pHeading3"><del><a name="wp125150"></a></del>示例 weblogic.conf 配置文件<a name="sample-wlconf"></a> </h4>
<p class="pBody"><del><a name="wp125151"></a></del>以下示例 <code class="cCode">weblogic.conf</code> 文件可以用作模板，您可以对其进行修改以满足您的环境和服务器的需要。以 # 开始的行是注释。 </p>
<h5 class="pHeading4"><del><a name="wp125153"></a></del>使用 WebLogic 群集的示例<a name="example-cluster"></a> </h5>
<del><a name="wp125155"></a></del>
<div class="pPreformatted">
<pre># 这些参数对于定向到当前模块 <br />
# 的 URL 是常用的。如果要替换每个 URL 的这些参数,<br />
# 可以在 &lt;Location&gt; 或 &lt;Files&gt; 模块中重新设置<br />
# 它们。（WebLogicHost、<br />
# WebLogicPort、 WebLogicCluster 和 CookieName 除外。)</pre>
</div>
<del><a name="wp125156"></a></del>
<div class="pPreformatted">
<pre>&lt;IfModule mod_weblogic.c&gt;<br />
&nbsp;&nbsp;WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001<br />
&nbsp;&nbsp;ErrorPage http://myerrorpage.mydomain.com<br />
&nbsp;&nbsp;MatchExpression *.jsp<br />
&lt;/IfModule&gt;<br />
####################################################</pre>
</div>
<h5 class="pHeading4"><del><a name="wp125158"></a></del>使用多 WebLogic 群集的示例<a name="example-cluster"></a> </h5>
<p class="pBody"><del><a name="wp125546"></a></del>在此示例中，用于表示文件名模式的 <code class="cCode">MatchExpression</code> 参数语法、HTTP 请求应转发到的 WebLogic Server 主机以及各种其他参数如下所示： </p>
<del><a name="wp125564"></a></del>
<div class="pPreformattedRelative">
<pre>MatchExpression [<span style="font-style: italic">filename pattern</span>]&nbsp;[<span style="font-style: italic">WebLogicHost=host</span>] | [<span style="font-style: italic">paramName=value</span>]</pre>
</div>
<p class="pBody"><del><a name="wp125549"></a></del>下面的第一个 <code class="cCode">MatchExpression</code> 参数指定文件名模式 <code class="cCode">*.jsp</code>，然后命名单个 <code class="cCode">WebLogicHost</code>。管道符号后的 <code class="cCode">paramName=value</code> 组合指定 WebLogic Server 用于监听连接请求的端口，同时激活&#8220;Debug&#8221;选项。第二个 <code class="cCode">MatchExpression</code> 指定文件名模式 <code class="cCode">*.http</code> 并标识 <code class="cCode">WebLogicCluster</code> 主机及其端口。管道符号后的 <code class="cCode">paramName=value</code> 组合指定群集的错误页。 </p>
<del><a name="wp125160"></a></del>
<div class="pPreformatted">
<pre># 这些参数对于定向到当前模块 <br />
# 的 URL 是常用的。如果要替换每个 URL 的这些参数,<br />
# 可以在 &lt;Location&gt; 或 &lt;Files&gt; 模块中重新设置<br />
# 它们。<br />
#（WebLogicHost、WebLogicPort、WebLogicCluster 和 CookieName 除外）</pre>
</div>
<del><a name="wp125161"></a></del>
<div class="pPreformatted">
<pre>&lt;IfModule mod_weblogic.c&gt;<br />
&nbsp;&nbsp;MatchExpression *.jsp&nbsp;WebLogicHost=myHost|WebLogicPort=7001|Debug=ON<br />
&nbsp;&nbsp;MatchExpression *.html&nbsp;WebLogicCluster=myHost1:7282,myHost2:7283|ErrorPage=<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.xyz.com/error.html<br />
&lt;/IfModule&gt;</pre>
</div>
<h5 class="pHeading4"><del><a name="wp125163"></a></del>不使用 WebLogic 群集的示例<a name="example"></a> </h5>
<del><a name="wp125164"></a></del>
<div class="pPreformatted">
<pre># 这些参数对于定向到当前模块 <br />
# 的 URL 是常用的。如果要替换每个 URL 的这些参数,<br />
# 可以在 &lt;Location&gt; 或 &lt;Files&gt; 模块中重新设置<br />
# 它们。<br />
#（WebLogicHost、WebLogicPort、WebLogicCluster 和 CookieName 除外）</pre>
</div>
<del><a name="wp125165"></a></del>
<div class="pPreformatted">
<pre>&lt;IfModule mod_weblogic.c&gt;<br />
&nbsp;&nbsp;WebLogicHost myweblogic.server.com<br />
&nbsp;&nbsp;WebLogicPort 7001<br />
&nbsp;&nbsp;MatchExpression *.jsp<br />
&lt;/IfModule&gt;</pre>
</div>
<h5 class="pHeading4"><del><a name="wp128857"></a></del>配置多个基于名称的虚拟主机的示例 </h5>
<del><a name="wp128858"></a></del>
<div class="pPreformatted">
<pre># VirtualHost1 = localhost:80<br />
&lt;VirtualHost 127.0.0.1:80&gt;<br />
DocumentRoot "C:/test/VirtualHost1"<br />
ServerName localhost:80	&lt;IfModule mod_weblogic.c&gt; <br />
#... WLS 参数 ...<br />
WebLogicCluster localhost:7101,localhost:7201<br />
# 示例：MatchExpression *.jsp &lt;some additional parameter&gt;<br />
MatchExpression *.jsp PathPrepend=/test2<br />
&lt;/IfModule&gt;<br />
&lt;/VirtualHost&gt;</pre>
</div>
<del><a name="wp128860"></a></del>
<div class="pPreformatted">
<pre># VirtualHost2 = 127.0.0.2:80<br />
&lt;VirtualHost 127.0.0.2:80&gt;<br />
DocumentRoot "C:/test/VirtualHost1"<br />
ServerName 127.0.0.2:80<br />
&lt;IfModule mod_weblogic.c&gt; <br />
#... WLS 参数 ...<br />
WebLogicCluster localhost:7101,localhost:7201<br />
# 示例：MatchExpression *.jsp &lt;some additional parameter&gt;<br />
MatchExpression *.jsp PathPrepend=/test2<br />
#... WLS 参数 ...<br />
&lt;/IfModule&gt;<br />
&lt;/VirtualHost&gt;	&lt;IfModule mod_weblogic.c&gt; </pre>
</div>
<p class="pBody"><del><a name="wp128861"></a></del>必须为&#8220;ServerName&#8221;定义唯一值，否则某些插件参数将不能按预期工作。 </p>
<h4 class="pHeading3"><del><a name="wp131051"></a></del>Apache HTTP Server httpd.conf 文件的模板<a name="sample"></a> </h4>
<p class="pBody"><del><a name="wp131053"></a></del>本部分包含 Apache 2.0 的示例 <code class="cCode">httpd.conf</code> 文件。您可将此示例用作模板，并对其进行修改以满足您的环境和服务器的需要。以 # 开始的行是注释。 </p>
<p class="pBody"><del><a name="wp131054"></a></del>请注意，Apache HTTP Server 不区分大小写。 </p>
<del><a name="wp131055"></a></del>
<div class="pPreformatted">
<pre>####################################################</pre>
</div>
<del><a name="wp131056"></a></del>
<div class="pPreformatted">
<pre><span style="font-style: italic">APACHE-HOME</span>/conf/httpd.conf file<br />
####################################################</pre>
</div>
<del><a name="wp131057"></a></del>
<div class="pPreformatted">
<pre>LoadModule weblogic_module   libexec/mod_wl_20.so</pre>
</div>
<del><a name="wp131058"></a></del>
<div class="pPreformatted">
<pre>&lt;Location /weblogic&gt;<br />
SetHandler weblogic-handler<br />
PathTrim /weblogic <br />
ErrorPage http://myerrorpage1.mydomain.com<br />
&lt;/Location&gt;</pre>
</div>
<del><a name="wp131059"></a></del>
<div class="pPreformatted">
<pre>&lt;Location /servletimages&gt;<br />
SetHandler weblogic-handler<br />
PathTrim /something<br />
ErrorPage http://myerrorpage1.mydomain.com<br />
&lt;/Location&gt;</pre>
</div>
<del><a name="wp131060"></a></del>
<div class="pPreformatted">
<pre>&lt;IfModule mod_weblogic.c&gt;<br />
&nbsp;&nbsp;MatchExpression *.jsp<br />
&nbsp;&nbsp;WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001<br />
&nbsp;&nbsp;ErrorPage http://myerrorpage.mydomain.com<br />
&lt;/IfModule&gt;</pre>
</div>
<p>&nbsp;</p>
<hr noShade />
<h2 class="pHeading1"><del><a name="wp102410"></a></del>设置边界身份验证 </h2>
<p class="pBody"><del><a name="wp123200"></a></del>使用边界身份验证可确保通过 Apache 插件访问的 WebLogic Server 应用程序的安全。 </p>
<p class="pBody"><del><a name="wp124443"></a></del>WebLogic 标识声明提供程序对来自访问 WebLogic Server 应用程序的外部系统的标记进行身份验证，包括对通过 Apache HTTP Server 插件访问 WebLogic Server 应用程序的用户进行身份验证。按照下列步骤，创建确保插件安全的标识声明提供程序： </p>
<div class="pSmartList1">
<ol class="pSmartList1" type="1">
    <li><del><a name="wp124165"></a></del>在 WebLogic Server 应用程序上创建一个自定义标识声明提供程序。请参阅&#8220;开发 WebLogic Server 的安全提供程序&#8221;中的<span class="cHyperlink"><a href="http://edocs.bea.com.cn/wls/docs92/dvspisec/ia.html#1089150">如何开发自定义标识声明提供程序</a></span>。
    <li><del><a name="wp124283"></a></del>配置自定义标识声明提供程序以支持证书标记类型并使证书成为活动标记类型。请参阅&#8220;开发 WebLogic Server 的安全提供程序&#8221;中的<span class="cHyperlink"><a href="http://edocs.bea.com.cn/wls/docs92/dvspisec/ia.html#1155765">如何创建新标记类型</a></span>。
    <li><del><a name="wp124347"></a></del>在 Web 应用程序的 <code class="cCode">web.xml</code> 部署描述符文件中将 <code class="cCode">clientCertProxy</code> 设置为 True（如果使用群集，也可以选择在管理控制台中，依次选择&#8220;群集&#8221;--&gt;&#8220;配置&#8221;--&gt;&#8220;常规&#8221;选项卡，在该选项卡上对整个群集将 <code class="cCode">Client Cert Proxy Enabled</code> 特性设置为 True）。<code class="cCode">clientCertProxy</code> 特性可与第三方代理服务器（如负载平衡器或 SSL 加速器）一起使用以启用 2 向 SSL 身份验证。有关 <code class="cCode">clientCertProxy</code> 特性的详细信息，请参阅&#8220;开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP&#8221;中的 <span class="cHyperlink"><a href="http://edocs.bea.com.cn/wls/docs92/webapp/weblogic_xml.html">context-param</a></span>。
    <li><del><a name="wp124423"></a></del>设置了 <code class="cCode">clientCertProxy</code>之后，请务必使用连接筛选器来确保 WebLogic Server 仅接受来自运行 Apache 插件的计算机的连接。请参阅&#8220;WebLogic 安全性编程&#8221;中的<span class="cHyperlink"><a href="http://edocs.bea.com.cn/wls/docs92/security/con_filtr.html">使用网络连接筛选器</a></span>。
    <li><del><a name="wp129103"></a></del>Web 服务器插件需要可信证书颁发机构文件才能在插件和 WebLogic Server 之间使用 SSL。使用 Sun Microsystems 的 Keytool 实用工具可从驻留在 BEA_HOME/weblogic92/server/lib 中的 DemoTrust.jks 密钥库文件中导出可信证书颁发机构文件。
    <div class="pSmartList2">
    <ol class="pSmartList2" type="a">
        <li><del><a name="wp129104"></a></del>例如，要解压缩 wlsdemoca 文件，可使用如下命令：<br />
        keytool -export -file trustedcafile.der -keystore DemoTrust.jks -alias wlsdemoca
        <p class="pBodyRelative"><del><a name="wp129107"></a></del>更改别名以从密钥库中获得不同的可信 CA 文件。 </p>
        <p class="pBodyRelative"><del><a name="wp129109"></a></del>要查看密钥库中的所有可信 CA 文件，请使用如下命令：<br />
        keytool -list -keystore DemoTrust.jks </p>
        <p class="pBodyRelative"><del><a name="wp129112"></a></del>如果提示输入密码，请按 Enter 键。 </p>
        <li><del><a name="wp129114"></a></del>要将证书颁发机构文件转换为 pem 格式，请使用如下命令：java utils.der2pem trustedcafile.der </li>
    </ol>
    </div>
    </li>
</ol>
</div>
<p class="pBody"><del><a name="wp124386"></a></del>请参阅&#8220;开发 WebLogic Server 的安全提供程序&#8221;中的<span class="cHyperlink"><a href="http://edocs.bea.com.cn/wls/docs92/dvspisec/ia.html">标识声明提供程序</a></span>。 </p>
<p>&nbsp;</p>
<hr noShade />
<h2 class="pHeading1"><del><a name="wp123199"></a></del>将 SSL 与 Apache 插件一起使用 </h2>
<p class="pBody"><del><a name="wp102411"></a></del>可以使用安全套接口层（Secure Socket Layer，简称 SSL）协议保护 Apache HTTP Server 插件和 WebLogic Server 之间的连接。SSL 协议对 Apache HTTP Server 插件和 WebLogic Server 之间传递的数据提供机密性和完整性。 </p>
<p class="pBody"><del><a name="wp102145"></a></del>Apache HTTP Server 插件不使用 HTTP 请求中（通常由浏览器）指定的传输协议（<code class="cCode">http</code> 或 <code class="cCode">https</code>）来确定是否使用 SSL 协议来保护 Apache HTTP Server 插件和 WebLogic Server 之间的连接。 </p>
<p class="pBody"><del><a name="wp116100"></a></del>虽然可以在 HTTP 客户端和 Apache HTTP Server 之间使用双向 SSL，但请注意，在 Apache HTTP Server 和 WebLogic Server 之间使用的是单向 SSL。 </p>
<h3 class="pHeading2"><del><a name="wp105026"></a></del>配置 Apache HTTP Server 插件和 WebLogic Server 之间的 SSL </h3>
<p class="pBody"><del><a name="wp105507"></a></del>要在 Apache HTTP Server 插件和 WebLogic Server 之间使用 SSL 协议，请执行下列操作： </p>
<div class="pSmartList1">
<ol class="pSmartList1" type="1">
    <li><del><a name="wp118514"></a></del>针对 SSL 配置 WebLogic Server。有关详细信息，请参阅<a href="http://edocs.bea.com.cn/wls/docs92/secmanage/ssl.html">配置 SSL</a>。
    <li><del><a name="wp118516"></a></del>配置 WebLogic Server SSL 监听端口。有关详细信息，请参阅<a href="http://edocs.bea.com.cn/wls/docs92/secmanage/ssl.html">配置 SSL</a>。
    <li><del><a name="wp105124"></a></del>在 Apache Server 中，将 <code class="cCode">httpd.conf</code> 文件中的 <code class="cCode">WebLogicPort</code> 参数设置为<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp118516"><span class="cHyperlink">步骤 2</span></a> 中配置的 WebLogic Server SSL 监听端口。
    <li><del><a name="wp105192"></a></del>在 Apache Server 中，将 <code class="cCode">httpd.conf</code> 文件中的 <code class="cCode">SecureProxy</code> 参数设置为 <code class="cCode">ON</code>。
    <li><del><a name="wp105490"></a></del>在 <code class="cCode">httpd.conf</code> 文件中设置可定义有关 SSL 连接的信息的任何其他参数。有关可以为插件配置的 SSL 参数的完整列表，请参阅 <a href="http://edocs.bea.com.cn/wls/docs92/plugins/plugin_params.html#wp1155622"><span class="cHyperlink">Web 服务器插件的 SSL 参数</span></a>。 </li>
</ol>
</div>
<h3 class="pHeading2"><del><a name="wp102118"></a></del>SSL-Apache 配置的相关问题<a name="ssl"></a> </h3>
<p class="pBody"><del><a name="wp100480"></a></del>配置 Apache 插件以使用 SSL 时会出现以下已知问题： </p>
<div class="pSmartList1Bullet">
<ul>
    <li><del><a name="wp129439"></a></del>要准备插件配置，请双击锁以进入证书路径：
    <p class="pBodyRelative"><del><a name="wp129442"></a></del>* 选择根 CA（在顶部） </p>
    <p class="pBodyRelative"><del><a name="wp129443"></a></del>* 显示它 </p>
    <p class="pBodyRelative"><del><a name="wp129444"></a></del>* 查看详细信息，然后使用编码的&#8220;基本 </p>
    <p class="pBodyRelative"><del><a name="wp129445"></a></del>64 X509&#8221;选项将此证书复制到文件中 </p>
    <p class="pBodyRelative"><del><a name="wp129446"></a></del>* 例如，将文件保存到 <code class="cCode">MyWeblogicCAToTrust.cer</code>（此文件也是 </p>
    <p class="pBodyRelative"><del><a name="wp129447"></a></del>PEM 文件） </p>
    <li><del><a name="wp129437"></a></del>参数 PathTrim（请参见 <a href="http://edocs.bea.com.cn/wls/docs92/plugins/plugin_params.html#wp1143055">Web 服务器插件的常规参数</a>）必须在 <code class="cCode">&lt;Location&gt;</code> 标记内配置。
    <p class="pBodyRelative"><del><a name="wp105551"></a></del>以下配置<span style="font-weight: bold">不正确</span>： </p>
    <del><a name="wp100482"></a></del>
    <div class="pPreformattedRelative">
    <pre>&lt;Location /weblogic&gt;<br />
    SetHandler weblogic-handler <br />
    &lt;/Location&gt; </pre>
    </div>
    <del><a name="wp102971"></a></del>
    <div class="pPreformattedRelative">
    <pre><code class="cCode">&lt;IfModule mod_weblogic.c&gt;<br />
    WebLogicHost localhost<br />
    WebLogicPort 7001<br />
    PathTrim /weblogic<br />
    &lt;/IfModule&gt; </code></pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp100484"></a></del>以下配置是<span style="font-weight: bold">正确</span>设置： </p>
    <del><a name="wp100485"></a></del>
    <div class="pPreformattedRelative">
    <pre><code class="cCode">&lt;Location /weblogic&gt;<br />
    SetHandler weblogic-handler<br />
    PathTrim /weblogic<br />
    &lt;/Location&gt;</code></pre>
    </div>
    <li><del><a name="wp100486"></a></del><code class="cCode">Include</code> 指令不能与 Apache SSL 一起使用。必须在 <code class="cCode">httpd.conf</code> 文件中直接配置所有参数。使用 SSL 时请不要使用以下配置： <del><a name="wp100487"></a></del>
    <div class="pPreformattedRelative">
    <pre>&lt;IfModule mod_weblogic.c&gt;<br />
    MatchExpression *.jsp <br />
    Include weblogic.conf <br />
    &lt;/IfModule&gt; </pre>
    </div>
    <li><del><a name="wp122610"></a></del>WebLogic Server Apache 插件的当前实现不支持对 Apache SSL 使用多个证书文件。 </li>
</ul>
</div>
<p>&nbsp;</p>
<hr noShade />
<h2 class="pHeading1"><del><a name="wp113634"></a></del>连接错误和群集故障转移 </h2>
<p class="pBody"><del><a name="wp113638"></a></del>当 Apache HTTP Server 插件尝试连接到 WebLogic Server 时，插件使用几个配置参数确定等待连接到 WebLogic Server 主机的时间长度，以及建立连接后插件等待响应的时间长度。如果插件无法连接或未收到响应，则插件将尝试连接到群集中的其他 WebLogic Server 实例并向其发送请求。如果连接失败或者没有来自群集中任何 WebLogic Server 的响应，则会发送错误消息。 </p>
<p class="pBody"><del><a name="wp113645"></a></del><a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp116061"><span class="cHyperlink">图&nbsp;3-1</span></a> 说明插件如何处理故障转移。 </p>
<h3 class="pHeading2"><del><a name="wp113646"></a></del>连接失败的可能原因 </h3>
<p class="pBody"><del><a name="wp113647"></a></del>WebLogic Server 主机无法响应连接请求可能表明下列问题： </p>
<div class="pSmartList1Bullet">
<ul>
    <li><del><a name="wp126091"></a></del>主机计算机的物理问题
    <li><del><a name="wp126096"></a></del>网络问题
    <li><del><a name="wp126100"></a></del>其他服务器故障 </li>
</ul>
</div>
<p class="pBody"><del><a name="wp113648"></a></del>所有 WebLogic Server 实例都无法响应可能表明下列问题： </p>
<div class="pSmartList1Bullet">
<ul>
    <li><del><a name="wp126124"></a></del>WebLogic Server 未运行或不可用
    <li><del><a name="wp126128"></a></del>服务器挂起
    <li><del><a name="wp126129"></a></del>数据库问题
    <li><del><a name="wp126134"></a></del>应用程序特定故障 </li>
</ul>
</div>
<h3 class="pHeading2"><del><a name="wp113649"></a></del>调整以减少 Connection_Refused 错误 </h3>
<p class="pBody"><del><a name="wp123956"></a></del>在有负载时，Apache 插件可能收到来自后端 WebLogic Server 实例的 CONNECTION_REFUSED 错误。可根据以下调整提示减少 CONNECTION_REFUSED 错误： </p>
<div class="pSmartList1Bullet">
<ul>
    <li><del><a name="wp123488"></a></del>提高WebLogic Server 域配置中的 <code class="cCode">AcceptBackLog</code> 设置。
    <li><del><a name="wp123914"></a></del>在 Apache 2.0.x 上，将 <code class="cCode">httpd.conf</code> 文件中的 <code class="cCode">KeepAlive</code> 指令设置为 On。例如： <del><a name="wp123915"></a></del>
    <div class="pPreformattedRelative">
    <pre># KeepAlive: Whether or not to allow persistent connections (more than</pre>
    </div>
    <del><a name="wp123916"></a></del>
    <div class="pPreformattedRelative">
    <pre># one request per connection). Set to "Off" to deactivate.</pre>
    </div>
    <del><a name="wp123917"></a></del>
    <div class="pPreformattedRelative">
    <pre>#</pre>
    </div>
    <del><a name="wp123918"></a></del>
    <div class="pPreformattedRelative">
    <pre>KeepAlive On</pre>
    </div>
    <p class="pBodyRelative"><del><a name="wp123920"></a></del>请参阅位于 <span class="cHyperlink"><a href="http://httpd.apache.org/docs-project/">http://httpd.apache.org/docs-project/</a></span> 的 Apache HTTP Server 2.0 文档。 </p>
    <li><del><a name="wp123912"></a></del>减少等待时间间隔。此设置因使用的操作系统而异。例如：
    <div class="pSmartList2Bullet">
    <ul>
        <li><del><a name="wp123711"></a></del>在 Windows NT 上，将代理和 WebLogic Server 服务器上的 <code class="cCode">TcpTimedWaitDelay</code> 设置为较低的值。通过编辑 <code class="cCode">HKEY_LOCAL_MACHINE</code> 下的注册表项来设置 Windows NT 中的 TIME_WAIT 时间间隔。 <del><a name="wp123622"></a></del>
        <div class="pPreformattedRelative">
        <pre>SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay </pre>
        </div>
        <p class="pBodyRelative"><del><a name="wp123881"></a></del>如果此项不存在，则可以将其作为 DWORD 值创建。数字值是要等待的秒数，可将其设置为介于 30 和 240 之间的任意值。如果未设置，默认情况下 Windows NT 会将 <code class="cCode">TIME_WAIT</code> 设置为 240 秒。 </p>
        <li><del><a name="wp124073"></a></del>在 Windows 2000 上，通过编辑 <code class="cCode">HKEY_LOCAL_MACHINE</code> 下的注册表项降低 <code class="cCode">TcpTimedWaitDelay</code>的值： <del><a name="wp124103"></a></del>
        <div class="pPreformattedRelative">
        <pre>SYSTEM\CurrentControlSet\Services\Tcpip\Parameters </pre>
        </div>
        <li><del><a name="wp123883"></a></del>在 Solaris 上，将设置 <code class="cCode">tcp_time_wait_interval</code> 降低为一秒（如果可能，对 WebLogic Server 计算机和 Apache 计算机都进行此设置）： <del><a name="wp123747"></a></del>
        <div class="pPreformattedRelative">
        <pre>$ndd /dev/tcp</pre>
        </div>
        <del><a name="wp123748"></a></del>
        <div class="pPreformattedRelative">
        <pre>   param name to set - tcp_time_wait_interval</pre>
        </div>
        <del><a name="wp123749"></a></del>
        <div class="pPreformattedRelative">
        <pre>   value=1000</pre>
        </div>
        </li>
    </ul>
    </div>
    <li><del><a name="wp123408"></a></del>在您的计算机上提高打开文件描述符的限制。此限制因操作系统而异。使用 <code class="cCode">limit</code> (<code class="cCode">.csh</code>) 或 <code class="cCode">ulimit</code> (<code class="cCode">.sh</code>) 指令，可以制作一个脚本来提高此限制。例如： <del><a name="wp123819"></a></del>
    <div class="pPreformattedRelative">
    <pre>#!/bin/sh</pre>
    </div>
    <del><a name="wp123820"></a></del>
    <div class="pPreformattedRelative">
    <pre>ulimit -S -n 100</pre>
    </div>
    <del><a name="wp123821"></a></del>
    <div class="pPreformattedRelative">
    <pre>exec httpd </pre>
    </div>
    <li><del><a name="wp123810"></a></del>在 Solaris 上，提高 WebLogic Server 计算机上下列可调参数的值：
    <div class="pSmartList2Bullet">
    <ul>
        <li><del><a name="wp124001"></a></del>tcp_conn_req_max_q
        <li><del><a name="wp124002"></a></del>tcp_conn_req_max_q0 </li>
    </ul>
    </div>
    </li>
</ul>
</div>
<h3 class="pHeading2"><del><a name="wp123394"></a></del>单个非群集 WebLogic Server 的故障转移 </h3>
<p class="pBody"><del><a name="wp113650"></a></del>如果仅运行一个 WebLogic Server 实例，则插件仅尝试连接到使用 WebLogicHost 参数定义的服务器。如果尝试失败，则会返回 <code class="cCode">HTTP 503</code> 错误消息。插件继续尝试连接到该同一 WebLogic Server 实例，直到超出 ConnectTimeoutSecs。 </p>
<h3 class="pHeading2"><del><a name="wp113657"></a></del>动态服务器列表 </h3>
<p class="pBody"><del><a name="wp113658"></a></del>使用 <code class="cCode">httpd.conf</code> 或 <code class="cCode">weblogic.conf</code> 文件中的 <code class="cCode">WebLogicCluster</code> 参数指定 WebLogic Server 列表时，插件将该列表用作在群集成员之间进行负载平衡的起点。将第一个请求路由到这些服务器之一后，会返回一个动态服务器列表，其中包含群集中已更新的服务器列表。更新的列表添加群集中的任何新服务器并删除不再属于群集或无法响应请求的任何服务器。当群集中发生更改时，会使用 HTTP 响应自动更新此列表。 </p>
<h3 class="pHeading2"><del><a name="wp113659"></a></del>故障转移、Cookie 和 HTTP 会话 </h3>
<p class="pBody"><del><a name="wp116052"></a></del>当请求包含存储在 Cookie 或 POST 数据中的会话信息或包含编码到 URL 中的会话信息时，会话 ID 会包含对最初建立会话的特定服务器实例（称为<em class="cEmphasis"></em>主服务器）的引用，并包含对复制原始会话的其他服务器（称为<em class="cEmphasis"></em>次级服务器）的引用。包含 Cookie 的请求会尝试连接到主服务器。如果该尝试失败，则会将该请求路由到次级服务器。如果主服务器和次级服务器均故障，则会话将丢失，插件将尝试与动态群集列表中的其他服务器建立新的连接。请参阅<a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp116061"><span class="cHyperlink">图&nbsp;3-1</span></a> <a href="http://edocs.bea.com.cn/wls/docs92/plugins/apache.html#wp116061"><span class="cHyperlink">连接故障转移</span></a>。 </p>
<del><a name="wp116059"></a></del>
<table class="Note">
    <tbody>
        <tr>
            <td valign="top"><strong>注意：</strong></td>
            <td>如果 POST 数据大于 64K，插件将不会对 POST 数据进行解析以获取会话 ID。因此，如果您将会话 ID 存储在 POST 数据中，插件无法将请求路由到正确的主服务器或次级服务器，从而可能导致会话数据的丢失。</td>
        </tr>
    </tbody>
</table>
<div class="pFigureTitle"><del><a name="wp116061"></a></del>图 3-1 连接故障转移 </div>
<p class="pGraphic"><del><a name="wp130387"></a></del></p>
<div class="figure" align="left"><img id="wp130392" alt="连接故障转移" src="http://edocs.bea.com.cn/wls/docs92/plugins/wwimages/failover.gif" /></div>
<p class="pGraphic"></p>
<p class="pBody"><del><a name="wp130436"></a></del>在上图中，红圈中允许的最大重试次数等于 ConnectTimeoutSecs 除以 ConnectRetrySecs<code class="cCode"></code>。 </p>
<br />
安装和配置 Apache HTTP Server 插件
<img src ="http://www.blogjava.net/hjh/aggbug/160200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2007-11-13 13:08 <a href="http://www.blogjava.net/hjh/archive/2007/11/13/160200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>