1. 程式人生 > >Tomcat8配置域名訪問

Tomcat8配置域名訪問

1、配置hosts檔案(沒有域名時配置hosts檔案)

   檔案路徑 :    C:\Windows\System32\drivers\etc\hosts

   配置本地域名:

127.0.0.1		www.testTomcat.com

2、修改tomcat的server.xml檔案

       檔案路徑:tomcat解壓路徑/conf/server.xml

tomcat預設監聽埠是8080,我們如果想不帶埠的直接訪問專案,就必須監聽80 埠。

    2.1、將8080埠修改為80埠

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改後

  <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000" redirectPort="8443" />

2.2修改Engine

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

修改後

<Engine name="Catalina" defaultHost="www.testTomcat.com">

engine指定預設的處理請求的主機名,它至少與其中的一個host元素的name屬性值是一樣的

    2.3修改域名
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

修改後

 <Host name="www.testTomcat.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

 2.4修改war包路徑(可選)

    war包路徑預設在  tomcat解壓路徑/webapps  中。

    方法1、 可以直接將web專案打包的war包放到  tomcat解壓路徑/webapps  路徑下面。(名稱為 ROOT.war)

    方法2、修改appBase的值,並在建立testTomcat資料夾

              路徑:  tomcat解壓路徑/webapps/testTomcat。(複製war包到testTomcat中,名稱為 ROOT.war)

             修改後的值 如下程式碼:

<Host name="www.testTomcat.com"  appBase="webapps/testTomcat"
            unpackWARs="true" autoDeploy="true">

    方法3、新增Context標籤     

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

            解析:  docBase設定Tomcat中的專案名稱。

3、執行結果

擴充套件:

4、域名別名

重啟伺服器之後確實可以域名訪問專案了,但是當去掉前面www.的時候,卻無法訪問。

既然訪問不到意思就是沒有配置這個域名,就又加了一個<host/>標籤,其他的都沒變,只把有域名的地方去掉前面的www. 然後重啟伺服器,這樣按照理論來說是成功的,可是結果卻是出乎所料。

訪問不了,看日誌下面既然還報了記憶體溢位,這就沒辦法理解了。

後來翻牆查資料,終於解決了。原來<host/>下還有一個別名標籤<Alias></Alias>,修改後的程式碼

重啟伺服器,果然OK。
   <Host name="www.testTomcat.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="test1" path="" reloadable="true"/>
            <Alias>testTomcat.com</Alias>
      
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

參考:http://blog.csdn.net/sinat_25926481/article/details/51460160

5、Tomcat下有多個專案

例:當我們的有兩個專案都放在同一個tomcat下的時候,我們只需要把<Host></ Host>加上兩個既可以完成我們的2個專案的繫結,但是專案名稱別忘了改。

<Host name="www.testTomcat.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="test1" path="" reloadable="true"/>
            <Alias>testTomcat.com</Alias>
        <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="www.testTomcat2.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="test2" path="" reloadable="true"/>
            <Alias>testTomcat2.com</Alias>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>
參考 :http://blog.csdn.net/kongnan93/article/details/50461810