转:apache+tomcat+mod_jk整合配置虚拟主机

由于网上很多文章已经过时,而且许多网站转来转去使文章乱七八糟,看得我们眼花缭乱,不知道该听谁的。 

接下来你需要做的,就是跟着我一步一步做。值得注意的是,为了测试效果,你的域名解析一定要配置正确,比如www.domain1.com,你需要添加一条A记录将该URL的值设为你的IP。 

实现目标:通过www.domain1.com访问app1,www.domain2.com访问app2.两者都是通过80端口。 
需要的工具: 
1.apache2.2.14 
下载的地址:http://httpd.apache.org/ 
2.tomcat5.5 
http://tomcat.apache.org/download-55.cgi[选core zip的,即解压缩的不需要安装的] 
3.mod_jk 
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/ 
由于我们apache是2.2的所以这里选择mod_jk-1.2.28-httpd-2.2.3.so,当然当你读到这篇文章的时候可能已经不是2.2.3了,没关系,只要和apache保持一致即可。 

安装我就不说了吧,不会的自己google一下。 
apcahe一路点确定,端口选80,其他随便填不要紧。 
mod_jk下载后解压到apache安装目录的modules下,为了后面方便我把mod_jk重命名成了mod_jk.so。 
tomcat解压后即可,如果你一闪而过那说明是你环境变量没配置正确,只要环境变量正确解压了就可以跑的,其他的都是在乱说。 

首先我要配置的是apache。以为的为例子 

Java代码
  1. NameVirtualHost *:80  
  2.   
  3.   
  4. <VirtualHost *:80>  
  5.   
  6. ServerName www.wibowibo.com  
  7. ServerAlias wibowibo.com *.wibowibo.com  
  8. DocumentRoot "F:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/ROOT"  
  9. DirectoryIndex index.html index.htm index.jsp  
  10. #这个跟welcome-list的作用一样,欢迎页面  
  11. JkMount /servlet/* wibowibo   
  12. #让Apache支持对servlet传送,用以Tomcat解析  
  13. JkMount /*.jsp wibowibo   
  14. JkMount /*.htm wibowibo   
  15. JkMount /*.html wibowibo   
  16. #让Apache支持对jsp传送,用以Tomcat解析  
  17. JkMount /*.do wibowibo   
  18. #让Apache支持对.do传送,用以Tomcat解析  
  19. JkMount /* wibowibo  
  20. #设置这个apache将所有请求都转发给tomcat解析  
  21. #这里要根据自己的实际情况配置,如果考虑性能需要查阅更详细的资料,本文不做讨论  
  22. </VirtualHost>  
  23. <Directory "F:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/ROOT">  
  24.     Options Indexes FollowSymLinks  
  25.     AllowOverride None  
  26.     Order allow,deny  
  27.     Allow from all  
  28. </Directory>  
  29.   
  30. <VirtualHost *:80>  
  31.   
  32. ServerName www.zjjgh.org  
  33. DocumentRoot "F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27/webapps/zjjgh"  
  34. DirectoryIndex index.html index.htm index.jsp  
  35. JkMount /servlet/* zjjgh   
  36. #让Apache支持对servlet传送,用以Tomcat解析  
  37. JkMount /*.jsp zjjgh   
  38. JkMount /*.htm zjjgh   
  39. #让Apache支持对jsp传送,用以Tomcat解析  
  40. JkMount /*.do zjjgh   
  41. #让Apache支持对.do传送,用以Tomcat解析  
  42. JkMount /* zjjgh  
  43. </VirtualHost>  
  44. <Directory "F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27/webapps/zjjgh">  
  45.     Options Indexes FollowSymLinks  
  46.     AllowOverride None  
  47.     Order allow,deny  
  48.     Allow from all  
  49. </Directory>  
  50.   
  51.   
  52. LoadModule jk_module modules/mod_jk.so  
  53. #此处mod_jk的文件为你下载的文件  
  54. JkWorkersFile "F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27/conf/workers.properties"  
  55. #指定tomcat监听配置文件地址  
  56. JkLogFile "F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27/logs/mod_jk2.log"   
  57. #指定日志存放位置  
  58. JkLogLevel info  

Java代码
  1. <Directory "F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27/webapps/zjjgh">  
  2.     Options Indexes FollowSymLinks  
  3.     AllowOverride None  
  4.     Order allow,deny  
  5.     Allow from all  
  6. </Directory>  
这块主要是声明权限,不然你在浏览器就会报错返回you don't have permission什么什么的。总之这个不能少,而且一个DocumentRoot 对应一个Directory 

ServerName www.zjjgh.org 
这里的ServeName配置好后,tomcat的server.xml也要增加对应的HOST! 
Java代码
  1. <Host name="www.wibowibo.com" appBase="webapps"  
  2.       unpackWARs="true" autoDeploy="true"  
  3.       xmlValidation="false" xmlNamespaceAware="false">  
  4.         <Context path="" docBase="F:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/ROOT" reloadable="true" crossContext="true"/>  
  5.   
  6.    </Host>  
  7.     <Host name="www.zjjgh.org" appBase="webapps"  
  8.       unpackWARs="true" autoDeploy="true"  
  9.       xmlValidation="false" xmlNamespaceAware="false">  
  10.         <Context path="" docBase="F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27/webapps/zjjgh" reloadable="true" crossContext="true"/>  
  11.   
  12.    </Host>  

注意大小写!别把Host写成了HOST,不然tomcat会启动不了。这里的name要和ServerName对应,docBase也要一致,这个在任何路径都可以,我的两个路径分别放在两个tomcat的webapps【注意不要误解,等会我们只需要启动一个tomcat就可以了,就是workers.properties所在的tomcat】只要你这个路径下有一个可以运行起来的j2ee工程,当然,只有一个静态HTML也行。 

接下来是workers.properties 
这个拷贝就行了,自己在tomcat的conf下创建一个,里面的内容
Java代码
  1. workers.tomcat_home=F:/apache-tomcat-5.5.27/apache-tomcat-5.5.27 #让mod_jk模块知道tomcat的位置  
  2. workers.java_home=D:/Java/jdk1.5.0_16/jre #让mod_jk模块知道jre的位置  
  3. ps=/  
  4. worker.list=zjjgh,wibowibo #模块版本  
  5. worker.zjjgh.port=9009 #工作端口,若没占用则不用修改  
  6. worker.zjjgh.host=www.zjjgh.org #本机,若上面的Apache主机不为localhost,作相应修改  
  7. worker.zjjgh.type=ajp13 #类型  
  8. worker.zjjgh.lbfactor=1 #代理数,不用修改  
  9.   
  10. worker.wibowibo.port=9009 #工作端口,若没占用则不用修改  
  11. worker.wibowibo.host=www.wibowibo.com #本机,若上面的Apache主机不为localhost,作相应修改  
  12. worker.wibowibo.type=ajp13 #类型  
  13. worker.wibowibo.lbfactor=1 #代理数,不用修改  


把路径改成你自己的,port也一样。默认是8009,我改成了9009,在tomcat的server.xml里有一行
Java代码
  1. <!-- Define an AJP 1.3 Connector on port 8009 -->  
  2.    <Connector port="8009"   
  3.               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />  
和这里保持一致即可。 

好了,启动看看吧,先启动tomcat。workers.properites里设定的那个tomcat。然后启动apache,分别输入看看。如果异常,可以通过查看apache安装目录下的error.log和tomcat logs目录下的mod_jk.log分别解决对应的问题。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值