要求配多个虚拟目录,或绑定多个子域名
实现动态记通过子域名动态访问主网里的相关内容

解决方案 »

  1.   

    Tomcat6.0配置(虚拟目录的设置+多域名绑定) 
    优点:tomcat6.0可以自动更新类和页面,当然如果修改了配置文件,或者web.xml和lib,则需要重启tomcat才可以.
    配置更方便,开设站点只需修改一个conf文件。 
    Step 1 JDK安装
    ----------------------------------------------------------------------------------
    1.1 点击jdk-6u1-windows-i586-p.exe文件安装Jdk,选择目录(假使E:\jdk1.6),一路回车,安装完成
    1.2 添加JAVA环境变量(我的电脑右键->属性->高级->环境变量->系统变量)
            CLASSPATH   设置变量值 .;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
            JAVA_HOME   设置变量值 C:\Program Files\Java\jdk1.6.0
            PATH        设置变量值 .;%JAVA_HOME%;%JAVA_HOME%/bin;(原来里面有内容的话 最后加入就行)
    1.3 在DOS命令行状态下测试Java是否成功安装,敲入java -version可以查看版本
         c:\>java -version
         java version "1.6.0_01"
         Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
         Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
    1.4 测试HelloWorld,新建一个HelloWorld.java的文件,内容如下
         public class HelloWorld {
            public static void main(String arg[]) {
               System.out.println("Hello World!这是Java测试程序,说明你已成功安装了Java -- Jarry!");
            }
         }
         在命令行输入javac HelloWorld.java,编译一下,然后再执行java HelloWorld,就能看到正常的输出了。
         出现错误一般是环境变量或大小写等有问题,仔细检查就没有问题了。      Step 2 Tomcat安装
    ----------------------------------------------------------------------------------
    2.1 点击apache-tomcat-6.0.10.exe文件安装Tomcat,选择目录(假使d:\Tomcat)安装完成后
    2.2 添加TOMCAT环境变量(我的电脑右键->属性->高级->环境变量->系统变量)
             TOMCAT_HOME   设置变量值 d:/Tomcat
    2.3 从程序菜单或是服务里启动Tomcat,然后你在浏览器输入http://localhost:8080/就可以看到Tomcat欢迎页面。
         正常情况下都会成功,如果启动失败,请检查jakarta_service_日期.log日志,通过它一般可以解决问题。     比如出现类似报错:
         [947 prunsrv.c] [error] Failed creating java
         看一下系统盘windows/system32/下是否丢失msvcr71.dll文件,如果缺失,需要从别的机器拷贝一个过来。 
         打开浏览器 进入http://localhost:8080/,当看见Tomcat小猫的图标了,这样表示安装成功。 
        至此,JSP服务器就搭建完成了,用于学习和测试没有问题了,如果想要更高级的配置,可以往下面继续看。 
    Tomcat 6与Tomcat 5或者之前版本不一样的就是,首页没有显示具体的版本,猫猫也变大了些。
    没有admin管理页面了,admin在Tomcat 5.5来默认都没有了,不过可以下载admin包。
    而Tomcat 6.0没有看见admin包,不过这并不要紧,一般情况下也不需要admin包。 
    Tomcat 6.0默认也没有开启servlet、禁止目录浏览。这需要去conf/下配置web.xml文件。
    修改listings为true即可以目录浏览, 
                <param-name>listings</param-name>
                <param-value>true</param-value>
                <!-- false disable listings -->
                <!-- <param-value>false</param-value>-->          
    开启servlet直接访问功能,把这两段注释打开。    <servlet>
            <servlet-name>invoker</servlet-name>
            <servlet-class>
              org.apache.catalina.servlets.InvokerServlet
            </servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet> 
    <servlet-mapping>
            <servlet-name>invoker</servlet-name>
            <url-pattern>/servlet/*</url-pattern>
        </servlet-mapping>
       2.4 部署一个新项目chengqun,去conf/下配置server.xml   <Context path="/chengqun" docBase="d:\tomcat\webapps\chengqun"></Context>
       
        chengqun是你程序的目录    重启Tomcat,访问http://127.0.0.1:8080/chengqun就可以访问了 
      
      
    ======================================================================================================================
    域名绑定与虚拟目录设置:
    server.xml 的修改方式如下: 
    (一)多域名绑定 
    1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80 
    原始:
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" /> 
    修改后:
    <Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" /> 
    其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变 
    2.接下来就是重点了哈哈...
    单个域名绑定:
    原始:
    <Engine name="Catalina" defaultHost="localhost">
    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />
    </Engine>
    当然这里我把注释代码统统删除掉了,省的碍眼 修改后:
    <Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/" docBase="d:\wwwroot\chengqun"></Context>
    </Host> <Host name="chengqun1.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun1"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/" docBase="d:\wwwroot\chengqun1"></Context>
    </Host> 
      
    多域名绑定:
    <Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
    <Alias>chengqun.202.71one.com</Alias>
    <Alias>chengqun1.202.71one.com</Alias>
    <Alias>chengqun2.202.71one.com</Alias>
    <Context path="/" docBase="d:\wwwroot\chengqun"></Context>
    </Host> 
    这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以. (二)虚拟目录
    (1)
    <Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/chengqun" docBase="d:\wwwroot\chengqun"></Context>
    </Host>
    其中,Host标记是用来配置虚拟主机的,就是可以多个域名指向一个tomcat,格式只要参考默认的就 
    可以了。 
    <context>是Host标记的子元素吧,表示一个虚拟目录,它主要有两个属性,path就相当于虚拟目录名字, 
    而 docbase则是具体的文件位置。在这里我的虚拟路径名称为chengqun,实际上我的程序也就是html、jsp、 
    servlet都 放在了d:\wwwroot\chengqun这个目录下了。 
    这样我就可以通过 chengqun.202. com/chengqun 访问我的这个虚拟目录了。 
    另外一种方法是: 
    <Host name="chengqun.202. com" debug="0" appBase="d:\wwwroot\chengqun"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/" docBase="d:\wwwroot\chengqun"></Context>
    </Host>
    这样设置以后,输入域名可以访问这个站点程序了(Context path="/"这里不同)
    (2)
    没有指定默认站点,所以直接输入IP的时候,无法访问。如何让输入ip就可以访问指定的站点呢?
        修改server.xml的 <Engine name="Catalina" defaultHost="chengqun.202. com">
    这样就可以实现了输入ip访问chengqun.202. com这个站点的程序了!
      

  2.   

    docBase可以指向同一目录 吗?