Apache和tomcat多项目整合发布

原文地址:

http://blog.csdn.net/withiter/article/details/7520863

今天尝试了下用apache+tomcat映射多个项目。终于成功了,记录一下!

Apache和tomcat整合步骤:

  1.下载Apache2.0.53,并安装在c:\apache目录下,端口为80
  2.下载Tomcat5.5.9,并安装在c:\tomcat目录下,端口为8080
  3.从apache网站下载jk模块."mod_jk-1.2.10-apache-2.0.53.so"(下载地址 http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32),安装在c:\apache\modules下.
  4.在c:\apache\modules下新建一个配置文件workers.properties,其内容为
  worker.list= worker1[,work2...]
  worker.worker1.type=ajp13
  worker.worker1.host=localhost
  worker.worker1.port=8009
  worker.worker1.lbfactor=3
  worker.worker1.cachesize=10
  worker.worker1.cache_timeout=600
  worker.worker1.socket_keepalive=1
  worker.worker1.recycle_timeout=300
  注明:“worker.worker1.host=localhost”为tomcat所在机器名或ip
  “worker.worker1.port=8009”tomcat的jk工作端口
  5.修改c:\apache\conf\httpd.conf配置文件
  在文件的末尾加上以下指令
  LoadModule jk_module modules/mod_jk-1.2.10-apache-2.0.53.so
  JkWorkersFile modules/workers.properties
  JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
  JkRequestLogFormat     "%w %V %T"
  JkMount /*/servlet/* worker1
  JkMount /*.jsp worker1
  #要设置虚拟路径,否则图片无法正常显示
  Alias   /voteadmin   "E:/ontopvoteadmin/WebModule"
  <Directory   "E:/ontopvoteadmin/WebModule">
  Options   Indexes   MultiViews
  AddOutputFilter   Includes   html
  AllowOverride   None
  Order   allow,deny
  Allow   from   all
  </Directory>

        配置多个项目:
        如果是一台主机配置多个项目,并且采用一个ip映射多个域名的形式,如ip为:192.168.1.132,项目有两个分别为:web1,web2 都在E盘下的workspace目录下,也就是E://workspace/web1和E://workspace/web2 。比如我们要达到能在ie地址栏里输入:http://web1和http://web2能访问项目的效果。那么,要进行下面的设置。
          首先是tomcat,在tomcat的安装目录下的conf文件夹里有个配置文件server.xml,打开这个文件,找到<Engine>标签,里面有个<Host>标签,也就是虚拟机的意思。我们要设置几个项目,就需要几个<host>,<host>标签里的<context>就对应一个项目。
<Host name="web1" debug="0" appBase=""
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="E://workspace/web1 " debug="5" reloadable="true" crossContext="false">
       ……
      </Context>
</Host>
<Host name="web2" debug="0" appBase=""
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="E://workspace/web2 " debug="5" reloadable="true" crossContext="false">
       ……
      </Context>
</Host>
这样tomcat就配置完成了。
        下面配置Apache,在Apache安装目录下的conf文件中httpd.conf配置文件,我们也要配置虚拟机:
找到VirtualHost,这里的这个标签要对应server.xml中的<host>标签。 
<VirtualHost web1:80>
    ServerAdmin [email protected]
    DocumentRoot "E://workspace/web1"
    ServerName 127.0.0.1
    ErrorLog logs/error.log
    CustomLog logs/access.log common
</VirtualHost>
</VirtualHost>
  <VirtualHost web2:80>
    ServerAdmin [email protected]
    DocumentRoot "E://workspace/web2"
    ServerName 127.0.0.1
    ErrorLog logs/error.log
    CustomLog logs/access.log common
</VirtualHost>
再找到Listen ,即监听,改为:
Listen 127.0.0.1:80
Listen 192.168.1.134:80
        还有一点要注意,因为现在是将web1和web2两个域名映射到ip 192.168.1.132上,而现在还没有做相关的映射工作,所以还要设置一个重要的文件Hosts文件,这个文件是计算机自带文件,负责ip地址的映射,如果是win XP系统,host文件所在的目录为:C:\WINDOWS\system32\drivers\etc\Hosts,用记事本打来,发现里面有一行代码:127.0.0.1 localhost,这就是为什么localhost能代表本机的意思。127.0.0.1是个特殊的ip只能代表本机,而且不能做域名映射。所以我们用的内网ip进行映射,我的机子是192.168.1.132。所以加上两行代码:
192.168.1.132 web1
192.168.1.132 web2
保存。重启apache和tomcat执行http://web1和http://web2就可以了。


你可能感兴趣的:(apache,tomcat,发布)