• 一套Tomcat处理多个域名请求


    最近和Tomcat较上劲了。。。

    作为Tomcat的系列之一,来尝试下如何用一套Tomcat来处理多个域名请求。

    场景:基于成本考虑,多个department共用一台服务器,然后该服务器上就一套Tomcat。各个department有各自的域名,这样就需要配置Tomcat的虚拟主机来解决。

    1. 修改hosts文件

    2. 修改server.xml文件

    3. 为每个department创建webapps目录

    详细细节

    1. 修改hosts文件

    据自己目前的网络知识,像我们平时上网,当发出www.baidu.com的请求时,该域名会被www的DNS解析成对应的IP,之后就能定位到baidu的主机,进而建立连接进行访问。

    如果真有类似“一套Tomcat来处理多个域名请求”的需求,那么首先应该保证各个域名会被解析成同一个IP。

    在这里,为代替DNS的域名解析,暂时修改hosts文件,用来处理各个department的域名。

    hosts文件位置:

    Windows 7 x64: C:WindowsSystem32driversetc

    Linux CentOS 7: /etc

    假设两个域名:www.tomcatvirtualhost1.com ; www.tomcatvirtualhost2.com

    在hosts文件中增加以下内容,Tomcat Server IP 为真实的IP.

    Tomcat Server IP www.tomcatvirtualhost1.com
    Tomcat Server IP www.tomcatvirtualhost2.com

    2. 修改server.xml文件

    修改tomcat中conf下的server.xml文件(使用apache-tomcat-8.5.4)。

    在server.xml文件中,有以下默认的<Host>。 name="localhost" appBase="webapps"。name对应域名,appBase对应tomcat下的应用文件夹。

          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
    
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
          </Host>

    所以增加以下两个<Host>标签:

    修改name和appBase

          <Host name="www.tomcatvirtualhost1.com"  appBase="department1"
                unpackWARs="true" autoDeploy="true">
    
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
          </Host>
    
          <Host name="www.tomcatvirtualhost2.com"  appBase="department2"
                unpackWARs="true" autoDeploy="true">
    
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
          </Host>

    3. 为每个department创建webapps目录

    既然server.xml文件中已经增加了2个appBase,所以在tomcat目录下相应创建文件夹 department1 和 department2。为简化,可以复制webapps。

    4. 测试

    启动Tomcat,浏览器键入www.tomcatvirtualhost1.com:8080,这将访问department1;浏览器键入www.tomcatvirtualhost2.com:8080,这将访问department2。

    POST: 后续研究下怎么把端口号也去掉(修改默认端口的方式感觉不好),看着别扭。。。

    Done!

    清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己 -- 共勉
  • 相关阅读:
    第8组 Beta(2/6)(赵红霞)
    第8组 Beta (1/6)(赵红霞)
    第8组 Alpha(6/6)(赵红霞)
    第8组 Alpha(5/6)(赵红霞)
    第8组 Alpha(4/6)(赵红霞)
    第8组 Alpha(3/6)(赵红霞)
    第8组 Alpha(2/6)(赵红霞)
    Windows炫酷桌面钢铁侠主题 雨滴 Rainmeter
    blob 视频无法解析下载?不存在的,来瞅瞅这个方法
    java C C++ .net ps 安卓 等各种教学视频免费送
  • 原文地址:https://www.cnblogs.com/hello-yz/p/5769555.html
Copyright © 2020-2023  润新知