设为首页 收藏本站
查看: 317|回复: 0

[经验分享] Tomcat学习笔记 -【 虚拟主机与虚拟目录】

[复制链接]

尚未签到

发表于 2017-2-1 10:37:29 | 显示全部楼层 |阅读模式
  和Nginx类似,Tomcat也有虚拟主机、虚拟目录的概念。借助于虚拟主机功能,允许在一台Tomcat服务器上面创建多个虚拟主机。通过虚拟目录的设置,可以自定义web应用的存放目录,不再强硬要求web应用一定存放在Tomcat的webapps目录。了解一点运维的活儿,我会比较Happy DSC0000.gif
  【一】虚拟主机:Virtual Host
  [一]  简介:“虚拟主机”功能可以在一台物理机器上面“模拟”出多台逻辑机器,本质上是将 不同的域名绑定到同一个IP地址上面。 DSC0001.gif
  [二] 进行DNS设置:修改C:\WINDOWS\system32\drivers\etc下面的hosts文件,示例如下 DSC0002.gif

127.0.0.1    localhost www.excelsoft.com
  [三] 修改Tomcat的配置文件/conf/server.xml,添加如下内容: DSC0003.gif

  <Host name = "www.excelsoft.com" appBase = "E:\webapps">
<Context path = "" docBase = "E:\webapps\first-web" reloadable = "false"/>
</Host>
  [说明]
  1.  可以设置多台虚拟主机、也可以给一台虚拟主机添加多个web应用。
  2. jsp页面编译为class文件的存放路径如下,最后一个层级为虚拟主机的名称:
   \work\Catalina\www.excelsoft.com
  [四] 再次修改server.xml:修改为缺省的80端口、http协议默认即为80端口 DSC0004.gif

  <Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
  访问路径为:http://www.excelsoft.com
  [五] 关于默认主机:如果通过IP地址进行访问、默认访问的是localhost虚拟主机。 DSC0005.gif

   <Engine name="Catalina" defaultHost="localhost">
<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
..
</Host>
</Engine>
  [说明]
   1. unpackWARs:默认为true
    是否将web应用的war包进行解压缩,即使不解压缩仍可访问。
   2. autoDeploy:默认为true DSC0006.gif
    在Tomcat运行时添加新的war包、是否自动进行部署,如果设为false、在Tomcat重启时才会进行部署。
   3. 创建war包:创建war包、占用更少的存储空间,便于进行网络传输。
  使用jar命令:

jar -cvf first-web.war first-web
  使用winRar:创建first-web.rar,修改后缀名为war即可。
  【二】 虚拟目录:Virtual Directory
  [一] 简介:虚拟目录,用于将服务器上面的一个web应用目录、映射为可供外部用户访问的url路径。Apache、Tomcat、Nginx等web服务器都有虚拟目录的概念。
  [二] 修改server.xml:这是一种不被推荐的方式,需要重启Tomcat才能生效。
  <1>. 在<Host>节点下面添加:  

<Context path = "" docBase = "E:\webapps\first-web" reloadable = "false"/>
  [说明] DSC0007.gif
    1. 缺省的访问路径:访问时无需添加web应用的名称。
    2. 通过docBase自定义web应用的存放路径:不再要求一定存放在Tomcat的webapps路径下面。
    3. 设置reloadable属性为false:当class文件发生替换时、Tomcat的类加载器不会重新加载,生产环境
  下应设为false、避免反复加载严重影响Tomcat的效率。
  <2>.  其他示例:   DSC0008.gif

<Context path = "/first" docBase = "E:\webapps\first-web" reloadable = "true"/>
  [说明]
   1. 访问路径为/first
   2. 开发环境下reloadable为true:java文件修改编译之后、Tomcat会重新加载。
   3. 关于path: DSC0009.gif
    如果访问路径缺省、那么jsp转为java文件并编译的存放路径为"_",即
      \work\Catalina\www.excelsoft.com\_\org\apache\jsp
      - index_jsp.java
      - index_jsp.class
    如果path设为/first、jsp文件的编译存放路径为
      \work\Catalina\www.excelsoft.com\first\org\apache\jsp
  4. 关于项目资源修改后的重新加载: DSC00010.gif
  html/css/js:静态资源修改后无须重启Tomcat,用户访问时、Tomcat直接加载最新的资源。
  jsp页面:修改后无须重启Tomcat,用户访问jsp页面时,Tomcat会比较该jsp页面和由该jsp页面编译
  生成的class文件的时间戳,如果jsp页面较新Tomcat会重新编译并覆盖掉之前的class文件。
  class文件:在开发环境下可设置reloadable属性为true,如果修改了java文件并重新编译为class文件,
   Tomcat的类加载器会重新加载(reload)该class。
  <3>. 不需要重启Tomcat的方式:
  1. 修改server.xml:主机名www.excelsoft.com不再包含<Context>节点。

   <Host name = "www.excelsoft.com">
</Host>
  2. 进入\conf\Catalina目录,创建文件夹www.excelsoft.com(和虚拟主机名保持一致) DSC00011.gif
  3. 进入该文件夹,创建first.xml,内容如下:

   <?xml version="1.0" encoding="UTF-8"?>
<Context path = "/first" docBase = "E:\webapps\first-web" reloadable = "true"/>
  [说明]
     要求文件名和访问路径保持一致。
     无须重启Tomcat:文件名修改为first_web.xml、同时修改访问路径为path = "/first_web"
     如果修改了默认访问路径,需要重启Tomcat: DSC00012.gif 文件名称修改为ROOT.xml、访问路径修改为path = ""
  ===========================
  对Tomcat的了解总算深入了一点,还有更多精彩内容需要研究!
  欢迎拍砖或点赞! DSC00013.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-336045-1-1.html 上篇帖子: Debugging a servlet with tomcat and Eclipse tutorial 下篇帖子: 程序实现启动和停止嵌入式Tomcat Web服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表