Tomcat配置二级域名映射

我们知道nginx是可以根据二级域名配置路由的,其实Tomcat也具有类似的功能。

比如有这样一个场景:

Tomcat下有两个项目:blog、shop,部署在服务器上映射的一级域名为:zhangzw.com。

期望效果:

访问:http://blog.zhangzw.com,到达的是blog项目,访问:http://shop.zhangzw.com,到达的是shop项目。

配置方法

找到conf/server.xml文件,在Engine标签下添加两个Host配置:

<Engine name="Catalina" defaultHost="localhost">

    <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
    Realm>

    <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 "%r" %s %b"
    />
    Host>

    <Host name="blog.zhangzw.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="blog_access_log" suffix=".txt"
                pattern="%h %l %u %t "%r" %s %b"
        />
        <Context path="" docBase="blog" reloadable="true"/>
    Host>

    <Host name="shop.zhangzw.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="shop_access_log" suffix=".txt"
                pattern="%h %l %u %t "%r" %s %b"
        />
        <Context path="" docBase="shop" reloadable="true"/>
    Host>
Engine>

说明:

  • Host name

    需要与二级域名配置一样。

  • prefix

    access log 每个Host配置不一样,这样利于区分。

  • Context docBase

    可以是相对路径,如上所述配置,表示conf/webapps/blogconf/webapps/shop目录;

    也可以是绝对路径:如:/usr/local/blog

你可能感兴趣的:(Java开发)