zoukankan      html  css  js  c++  java
  • Tomcat——配置虚拟主机

    1.tomcat的安装配置

    tomcat5要求jdk1.4以上
    tomcat6要求jdk1.5以上
    tomcat7要求jdk1.6以上
    JAVA_HOME环境变量: 指定tomcat启动时使用的jdk所在的位置
    Catalina_Home环境变量:指定tomcat在启动时启动哪个tomcat,一般不推荐配置
    
    修改tomcat/bin/server.xml 修改默认端口为80
    (tomcat默认的访问端口是8080,浏览器的端口是80,为了方便每次从浏览器登录都要加上:8080端口信息,我们直接改成80端口,这样就不需要每次访问tomcat的web应用在域名后面添加 “:8080”了 直接输入"域名/应用路径"就OK了!)
    

    2.tomcat的目录结构

    bin ---- 启动和关闭需要的bat文件所在的目录
    conf --- 配置目录
    lib ---  tomcat运行时需要的jar包所在的目录
    logs --- 日志文件所在的目录
    temp --- tomcat运行时产生的临时文件存放的目录,不需要我们管理
    webapps --- 开发中最常用的目录,web应用放置到此目录下浏览器可以直接访问
    work --- 工作目录,tomcat运行时产生的工作文件存放在这个目录中
    

    3.虚拟主机/web应用

    虚拟主机:

        一个tomcat可以认为是一台真实主机.在一台真实主机中可以配置多个站点,这些站点在访问者看来访问他们就像在访问各自独立的主机一样,所以我们可以认为这些站点都运行在tomcat这台真实主机当中的各自的虚拟主机当中.一个网站就可以认为是一个虚拟主机
    

    web应用:

      一个虚拟主机中会有很多的web资源,但是web资源不能直接交给虚拟主机管理,需要按照一定方式组织成web应用虚拟主机才能使用.一般来说我们会按照功能将某一功能相关的所有的web资源组织成一个web应用后再交给虚拟主机.

        web应用目录结构: 如果目录结构不合法可能会出现各种奇葩的问题.
            news
            |
            |--静态资源和JSP文件都可以直接放置在web应用的目录下,直接放在web应用下的内容,浏览器可以直接访问到
            |
            |--WEB-INF -- 可以没有,但是最好有,如果有则一定要保证他的目录结构是完整的.放置在WEB-INF目录下的所有资源浏览器没有办法直接进行访问
                |--classes -- 动态web资源运行时的class文件要放在这个目录下
                |--lib -- 动态web资源运行时所依赖的jar包要放在这个目录下
                |--web.xml -- 整个web应用的配置文件,配置主页/Servlet的映射/过滤器监听器的配置都需要依赖这个文件进行
    

    配置虚拟主机:

      在conf/server.xml中标签下配置标签就可以为tomcat增加一台虚拟主机了
      name – 指定虚拟主机的名称,浏览器通过这个名称访问虚拟主机
      appBase – 虚拟主机管理的目录,放置在这个目录下的web应用当前虚拟主机可以自动加载

        *由于浏览器访问地址时,需要将地址翻译成对应的ip才能找到服务器,这其中翻译的过程是由dns服务器来实现的.我们在做实验的时候没有办法去修改dns服务器,此时可以使用hosts文件模拟dns的功能,从而完成实验.
    
        *缺省虚拟主机:如果来访者是通过ip来访问,这个时候服务器无法辨别当前要访问的是哪台虚拟主机中的资源,此时访问缺省虚拟主机.
    

    缺省虚拟主机可以在server.xmlengin标签上通过defaultHost属性进行配置.

    为虚拟主机配置web应用:

    • (1)在Server.xml的标签中,配置标签,就可以为该虚拟主机配置一个web应用了
      如果将path设置为空则这个web应用为缺省web应用
      这种配置方式需要重启服务器不推荐

    • (2)在tomcat/conf/[Engin]/[Host]/在这个目录下写一个xml文件,其中xml文件的名字就是虚拟路径,在这个xml中可以配置标签,其中配置真实路径.
      如果所配置的虚拟路径中有/由于文件名中不允许包含“/”需要用#替代.
      只要将文件名设置为ROOT.xml则这个xml描述的web应用就成为了缺省web应用
      这种配置方式不需要重启服务器,推荐使用!

    • (3)直接将web应用放置到虚拟主机管理的目录下,虚拟主机就可以找到这个web应用,从而管理这个web应用
      只要将web应用文件夹的名称改为ROOT,这个web应用就是缺省web应用

      *web应用的虚拟路径映射 -- 就是为web应用的真实存在的路径配置一个浏览器访问的虚拟路径
      *配置缺省web应用 -- 默认的web应用,当不写web应用名时就访问这个web应用
      

    ~练习:配置一台新的虚拟主机,修改hosts文件模拟dns的作用使其可以访问.用三种方式为这台虚拟主机配置三个web应用,并配置其中的一个web应用为缺省web应用,并配置其主页

    PS:如何在浏览器地址栏中输入www.xxx.com 就能访问到我的web应用呢?

    (为了方便调试,发布webApp的主机和服务器在同一台机器上才能实现这样的配置方式,实际应用中用不到)

    配置虚拟主机:
    在tomcat/conf/server.xml中配置

         <Host name="www.xxx.com" appBase="">
              <Context 
                  <!-- path不写代表是缺省的web应用,就是xxx web 应用下的WebRoot-->
                  path=""  
                  docBase="web应用的真实磁盘存储路径WebRoot" />
        </Host>

    虽然我们无法在DNS中注册自己的域名, 但是我们可以通过修改windows配置文件模拟DNS服务器:
    找到c: windowsSystem32driversetchosts
    在hosts文件中添加配置 :

            127.0.0.1       www.xxx.com

    这样,我们直接在浏览器的地址栏中输入 www.xxx.com 就可以直接看到我们的web应用啦!! 是不是很有成就感呢?

    4.零散知识

    打war包,减少web应用的体积方便传输,并且在虚拟主机管理的目录下,war默认可以自动解压
    
    通用Context配置、通用web.xml配置
    
    Tomcat服务器的管理平台
    
  • 相关阅读:
    在emacs上使用博客园的代码功能
    Programming Pearls笔记之一
    Virtualbox中Archlinux联网问题
    微信公众平台消息接口开发集成解决方案
    发送短信
    基于JMS的数据交换既数据互操作平台的解决方案
    Spring MVC基于注解的Junit测试
    获取设置一个字节某一个位的数值
    NotificationManager
    调用系统联系人列表
  • 原文地址:https://www.cnblogs.com/shiguangmanbu2016/p/5932903.html
Copyright © 2011-2022 走看看