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 &quot;%r&quot; %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 &quot;%r&quot; %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 &quot;%r&quot; %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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章