配置Apache+Tomcat支持多个应用,即多个二级域名
1、 环境Apache2.0.43.0 Tomcat 4.1.13 mod_jk-2.0.43 jdk 1.4 Windows 2003 关键文件位置: Server.xml:$tomcat_home/conf Httpd.conf:$apache_home/conf Mod_jk.conf:$tomcat_home/jk/ 2、 假设背景假设顶级域名www.abc.com,要架设site1.abc.com和site2.abc.com。site1和site2两个二级站点应用都在一台服务器上,假设对外IP:100.100.100.100 3、 mod_jk整合Apache、Tomcat这个内容网上有很多介绍,也很简单,这里就不说了。 4、 增加Tomcat虚拟主机打开Tomcat的server.xml文件,修改默认的host段,类似如下: <Host name="site1.abc.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> <Context path="" docBase="d://workspace//site1//webapp//" debug="0" reloadable="true" crossContext="true"> </Context> </Host> 并增加site2虚拟主机,类似如下: <Host name="site2.abc.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> <Context path="" docBase="d://workspace//site2//webapp//" debug="0" reloadable="true" crossContext="true"> </Context> </Host> 注意其中红色和蓝色加粗文字。 site2其实就是拷贝site1再对蓝色部分进行一下修改。 当然根据你的具体情况,也可以增加或者修改其他的配置。 5、 增加Apache虚拟主机打开Apache的httpd.conf文件,在最后的VirtualHost部分增加类似如下内容: <VirtualHost *:80> ServerName site1.abc.com DocumentRoot "d:/workspace/site1/webapp" </VirtualHost> <VirtualHost *:80> ServerName site2.abc.com DocumentRoot "d:/workspace/site2/webapp" </VirtualHost> 这里DocumentRoot内容和Tomcat的Context中docBase一般来说是一致的。 找到#NameVirtualHost *这行,默认是注释掉的,修改为: NameVirtualHost *:80 如果不打开这个配置,Apache会报错“default virtualhost overlap on port 80,the first has precedence” 如果不加“:80”,虽然也能运行起来,但Apache启动会报错。 VirtualHost *:80--mixing * prot and non-* ports with a NameVirtualHost address is not supported,proceeding with undefined results 6、 Hosts配置由于本机没有DNS解析,测试的时候,在浏览器地址栏输入site1.abc.com,是找不到服务器的。为了测试,我们需要增加这样的主机,让Apache能找到主机。 文本打开windows/system32/drivers/etc/Hosts文件,增加两行 127.0.0.1 site1.abc.com 127.0.0.1 site2.abc.com 启动Apache和Tomcat服务,在地址栏分别敲入site1.abc.com和site2.abc.com。应该是都可以访问了。 7、 实际部署实际部署的时候,当然是不需要修改Hosts文件了,因为Hosts文件只是对本机有效。通常ISP提供商应该会有系统来定义二级域名转发,在那里定义二级域名对应的IP。 site1.abc.com--->100.100.100.100 stei2.abc.com--->100.100.100.100 这样,就可以实际访问两个二级域名了。但是DNS配置好后,可能不会立刻生效,据说是2~24小时生效。 8、 其他虽然经过上面配置,基本上没什么问题了,但因为各个应用使用的技术不一样,可能会出现访问不正常的情况。 如果用了struts框架,发现*.do的请求没有响应,则修改mod_jk.conf文件,增加 JkMount /*.do ajp13 如果你希望默认页面是login.jsp而不是index.jsp,则修改httpd.conf的DirectoryIndex,将login.jsp写到index.jsp前面 当然了,上面说的都是基本的配置,还有很多细节上的配置,其实我也不会。 以上的配置,也是在朋友的帮助下做出来的,写下来,希望可以帮助需要的朋友。 有不正确的地方,还请多多指正。 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |