ysoren 发表于 2018-12-2 09:04:00

Tomcat 的虚拟主机

  Tomcat 默认只支持基于名称的虚拟主机      

  Tomcat的虚拟主机在 conf/server.xml 这个配置文件中定义的
  一、Tomcat的默认虚拟主机:


[*]      
      自定义的访问路径
[*]   


  各选项的意义:
  auotDeploy="true"      自动布署 ,默认为false
      appBase="webapps"      定义这个主机的应用程序的路径,这里是相对于tomcat的安装路径( 也就是"/usr/local/tomcat "), 也可以使用绝对路径
      unpackWARs="true"      让Tomcat可以自动解压war文件
自定义访问路径:



  path="/jcenter"            访问路径
  docBase="/web/jcenter"      网页文件的存放路径,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如,如果appBase为deploy,而docBase绝不能为deploy-bbs类的名字;
    reloadable="true"                是否允许自动装载
  下面我们就将 JavaCenter Home 这个开源的社交项目的相关文件放到我们自定的访问路径下(使用 Java Center Home 需要用到‘数据库’,因此需要先安装好数据库)
  1. 安装好数据库(可参考其它博文http://xyuex.blog.运维网.com/5131937/938738)
  2. 解压数据包


[*]# mkdir /web/
[*]tmp]# tar xf JavaCenter_Home_2.0_GBK.tar.bz2-C /web
[*]
[*]web]# ln -sv JavaCenter_Home_2.0_GBK/ jcenter
[*]create symbolic link `jcenter' to `JavaCenter_Home_2.0_GBK/'

  3. 重启Tomcat


[*]# bin/catalina.sh stop
[*]Using CATALINA_BASE:   /usr/local/tomcat
[*]Using CATALINA_HOME:   /usr/local/tomcat
[*]Using CATALINA_TMPDIR: /usr/local/tomcat/temp
[*]Using JRE_HOME:      /usr/java/jdk1.7.0_05
[*]Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[*]# bin/configtest.sh   用来测试配置文件是否有语法错误
[*]Using CATALINA_BASE:   /usr/local/tomcat
[*]Using CATALINA_HOME:   /usr/local/tomcat
[*]Using CATALINA_TMPDIR: /usr/local/tomcat/temp
[*]Using JRE_HOME:      /usr/java/jdk1.7.0_05
[*]Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[*]Oct 28, 2012 5:34:50 PM org.apache.catalina.core.AprLifecycleListener init
[*]INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/i386:/lib:/usr/lib
[*]Oct 28, 2012 5:34:52 PM org.apache.coyote.AbstractProtocol init   上面的信息只是提示我们没有安装APR 库,并不影响Tomcat的使用
[*]INFO: Initializing ProtocolHandler ["http-bio-8080"]
[*]Oct 28, 2012 5:34:52 PM org.apache.coyote.AbstractProtocol init
[*]INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
[*]Oct 28, 2012 5:34:52 PM org.apache.catalina.startup.Catalina load
[*]INFO: Initialization processed in 3686 ms
[*]# bin/catalina.sh start
[*]Using CATALINA_BASE:   /usr/local/tomcat
[*]Using CATALINA_HOME:   /usr/local/tomcat
[*]Using CATALINA_TMPDIR: /usr/local/tomcat/temp
[*]Using JRE_HOME:      /usr/java/jdk1.7.0_05
[*]Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

  4. 我们测试一下看看
http://blog.运维网.com/attachment/201210/175032186.jpg
http://blog.运维网.com/attachment/201210/175104963.jpg
http://blog.运维网.com/attachment/201210/175121411.jpg
http://blog.运维网.com/attachment/201210/175154801.jpg
http://blog.运维网.com/attachment/201210/175208721.jpg
http://blog.运维网.com/attachment/201210/175226860.jpg
http://blog.运维网.com/attachment/201210/175249877.jpg
  下面我们来演示如何在Tomcat中自定义一个虚拟主机
  二、自定义的虚拟主机
  自定义的虚拟主机的目录结构:
/www/*
                            所有用户可以通过浏览器直接请求的文件
   index.jsp
   logo.jpg
    WEB-INF/{web.xml , classes/*, lib/* }    这个目录必须要有,存放的是当前应用程序的私有资源,如部署描述符文件web.xml ,所有放在 "WEB-INF" 这个目录下的 ‘资源(内容)’ 都是 “私有资源”,只能在当前服务器上被当前应用程序所访问
            web.xml   当前应用程序的部署描述符文件,此文件可以复制 conf/web.xml来获得
            classes/*    可能存放的是编译好的类的字节码(可执行的字节码)
            lib/*      打包好的jar文件,包含定义好的类



  1. 首先编辑 conf/server.xml添加如下内容:


[*]
[*]               
[*]                     
[*]      
[*]

  path=""       访问路径,相对于Web服务器根路径而言的URI;如果为空“”,则表示为此webapp的根路径;如果context定义在一个单独的xml文件中,此属性不需要定义;
docBase="/www"      相应的Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;切记,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如,如果appBase为deploy,而docBase绝不能为deploy-bbs类的名字;
reloadable="true"   是否允许重新加载此context相关的Web应用程序的类;默认为false;

  2. 创建虚拟主机所需的相关目录和文件:


[*]# mkdir -pv /www/tomcat/WEB-INF/{classes,lib}
   mkdir: created directory `/www'
   mkdir: created directory `/www/tomcat'
   mkdir: created directory `/www/tomcat/WEB-INF'
   mkdir: created directory `/www/tomcat/WEB-INF/classes'
   mkdir: created directory `/www/tomcat/WEB-INF/lib'
[*]                           
[*]# cp /usr/local/tomcat/conf/web.xml/www/tomcat/WEB-INF/
[*]



[*]# vi /www/tomcat/index.jsp    编辑默认主页
[*]
[*]内容如下:
[*]
[*]
[*]
[*]TomcatA
[*]   
[*]    TomcatA
[*]   
[*]      
[*]      Session ID
[*]         
[*]      
[*]      
[*]      Created on
[*]         
[*]      
[*]   
[*]   
[*]



[*]# tree /www/
[*]/www/
[*]`-- tomcat
[*]    |-- WEB-INF
[*]    |   |-- classes
[*]    |   |-- lib
[*]    |   `-- web.xml
[*]    `-- index.jsp
[*]
[*]4 directories, 2 files

  3. 在Windows主机的hosts文件中加入 关于tomcat.yue.com的 IP 对应(便于测试)
  在C:\Windows/System32\drivers\etc\hosts文件中添加      “192.168.1.12    tomcat.yue.com”
  4. 重启Tomcat,进行测试
http://blog.运维网.com/attachment/201210/190749990.jpg
  5. 查看我们自定义的日志:


[*]# tail logs/tomcat_access_2012-10-28.log
[*].....
[*]192.168.1.2 - - "GET / HTTP/1.1" 200 437
[*]192.168.1.2 - - "GET / HTTP/1.1" 200 437

  




页: [1]
查看完整版本: Tomcat 的虚拟主机