加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

配置Apache+Tomcat支持多个应用,即多个二级域名

发布时间:2021-07-06 05:28:15 所属栏目:大数据 来源: https://blog.csdn.net/wts
导读: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和si

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前面

当然了,上面说的都是基本的配置,还有很多细节上的配置,其实我也不会。

以上的配置,也是在朋友的帮助下做出来的,写下来,希望可以帮助需要的朋友。

有不正确的地方,还请多多指正。

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读