虽然tomcat也可以作web服务器,但其处理静态html的速度比不上apache,且其作为web服务器的功能远不如apache,因此把apache和tomcat集成起来。以linux系统为例介绍.从apache网站下载apache1.3.23源代码版本,然后使用如下命令配置安装apache: 
mkdir /usr/local/apache
tar zxvf apache.1.33.tar.gz
cd apache.1.33
./configure --prefix=/usr/local/apache --enable-module=so 
make
make install注意configure命令指定目标安装目录,并且加入DSO(Dynamic Shared Object)支持,注意一定不要忘了这一个选项。然后下载webapp模块,将解压后mod_webapp.so文件放入apache的libexec目录,编辑apache的conf目录下的httpd.conf,在这个文件的最后加入下面三行: 
LoadModule webapp_module libexec/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/ 
 
第一行是加入webapp模块,如果编译apache时不增加DSO支持,则无法使用LoadModule指令,第二行指定tomcat与apache的连接,第三行指定部署那个应用,这两个指令使用格式如下: 
WebAppConnection [connection name] [provider] [host:port]
WebAppDeploy [application name] [connection name] [url path]  其中connection name指定连接名,provider只能是warp,port端口与你的tomcat的配置文件server.xml最后几行指定的要保持一致。文件如下: 
<Service name="Tomcat-Apache"> 
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="10" debug="0"/>
******
</Service> application name与你在tomcat中部署的应用名一致,url path指定访问这个应用的url。例如上面的例子可以通过http://localhost/examples/来访问tomcat中的examples应用。

解决方案 »

  1.   

    劳驾大虾" gutsyu(SL55AMG) "贴一下在win2000下如何配置!!!!
    谢谢
      

  2.   

    4.0提供以一种更简便的方法来使tomcat和apache结合起来。就是用mod_webapp组件。下面的是他的配置方法。
    Installing mod_webapp and using it with Apache 1.3
    --------------------------------------------------Once you have successfully built the mod_webapp DSO as described in the
    README.txt file coming with the sources, installing the module is pretty
    easy.First of all, copy the resulting mod_webapp.so file you will find in this
    directory (or in the apache-1.3 directory if you're building from sources)
    into your Apache 1.3 "libexec" directory (that directory where all DSO modules
    for Apache reside).If you're using Apache 1.3 for Windows, your modules directory will be called
    "modules" (there's a "libexec directory, but it contains other stuff). Please
    take care when loading the module. For Windows your "LoadModule" directive
    looks like:    LoadModule webapp_module modules/mod_webapp.soAnother note for Windows: copy also the "libapr.dll" file with the module, or
    your Apache 1.3 web server will refuse to start reporting that the WebApp
    module cannot be loaded.Once you have done that, edit your "httpd.conf" configuration file and
    add a few lines to load that module at startup (Windows users, read above,
    you have to "replace" libexec with "modules" - I'm paranoid, sorry):    LoadModule webapp_module libexec/mod_webapp.so
    and
        AddModule mod_webapp.cNOTE: It was reported that sometimes Apache under windows doesn't like the
    AddModule line in the configuration file. Please, if you can't start your
    Apache service, try commenting out that line in your httpd.conf file.Looking at the default "httpd.conf" file coming with Apache 1.3, I usually
    add the "LoadModule ..." line at the end of all pre-written and commented out
    "LoadModule" directives, and my "AddModule ..." directive at the end of all
    commented out "AddModule" directives. My "httpd.conf" file looks something
    like this:    [...]
        #LoadModule unique_id_module  libexec/mod_unique_id.so
        #LoadModule dav_module        libexec/libdav.so
        #LoadModule ssl_module        libexec/libssl.so
        LoadModule webapp_module      libexec/mod_webapp.so
        [...]
        ClearModuleList
        [...]
        #AddModule  mod_unique_id.c
        #AddModule  mod_dav.c
        #AddModule  mod_ssl.c
        AddModule   mod_webapp.c
        [...]Once you've edited your "httpd.conf" in such fashion, it's better to check
    if everything still works within the Apache core. You can test your newly
    constructed configuration by issuing:    apachectl configtestThe apachectl script comes with your Apache 1.3 distribution. It usually
    lies in /usr/local/apache/bin, but depending on _YOUR_ apache distribution,
    that might change.Once you verified that "apachectl" reports "Syntax OK" (meaning that all
    modules have been successfully loaded and started), you can start adding your
    web application connections and context into the Apache configurations.
    Back to the "httpd.conf" file, you need to add something like:    WebAppConnection conn      warp  localhost:8008
        WebAppDeploy     examples  conn  /examplesIn this example, I'm instructing the WebApp connector to connect to the
    servlet container waiting for requests on the current "localhost" host and
    bound to port 8008 (note, this port is the one you specified in your
    "server.xml" file for the "org.apache.catalina.connectors.warp.WarpConnector"
    connector, not your HTTP one).A brief detailed description of the above-mentioned directives is:    WebAppConnection [connection name] [provider] [host:port]        [connection name]
                A unique name for the connection to be created between Apache
                and Tomcat.        [provider]
                The name of the provider used to connect to the servlet container.
                Currently only the "warp" provider is available.        [host:port]
                The host name and port number to which the WARP connection must
                attempt to connect. The port is the one you specified in your
                "server.xml" file for the "...WarpConnector" connector, not your
                HTTP one.    WebAppDeploy [application name] [connection name] [url path]        [application name]
                The application name as present in your "webapps" directory in
                Tomcat. For example, if you want to deploy a WAR-based web
                application, your application name will look something like
                "myApplication.war".        [connection name]
                The name of a previously declared WebAppConnection directive.        [url path]
                The URL path where this application will be deployed.The "WebAppDeploy" directive is scoped around the current host, meaning that
    if you insert it into a "<VirtualHost ...>" tag, your application will be
    deployed only for that particular virtual host. To deploy the same application
    on several virtual hosts, you will have to declare it once inside each
    "<VirtualHost ...>" tag. This, in accordance with the Servlet specification,
    will create a new instance of the web-application per virtual host.Another directive is available for the WebApp connector. The "WebAppInfo"
    directive will allow you to see the current status of all configured
    connections and deployed applications. To use it, simply add something like:    WebAppInfo /webapp-infoYou can then access the information page hitting your web server for the
    following URL:    http://server.name:port/webapp-info/Have fun...
      

  3.   

    在windows下和linux差不多,只是server.xml的修改在mod_webapp说明中没有,照第一次说的配没问题。
      

  4.   

    在httpd.conf的最后一行添加LoadModule webapp_module modules/mod_webapp.so后,从其apache服务报错:
    Cannot load d:/apache group/apache/modules/mod_webapp.so into server: (193)