Tomcat如何使用Port 80和指定網頁存放路徑

由 Derek 發表於 十一月 9, 2011 / 2 則評論

 

1. 如何使用Port80

1.1 要把預設的port8080改為port80的話請修改server.xml

 

[root@localhost ~]# vim /opt/apache-tomcat-6.0.33/conf/server.xml

#原文內容

69     <Connector port=”8080″ protocol=”HTTP/1.1″

70                connectionTimeout=”20000″

71                redirectPort=”8443″ />

#修改port=”8080″改為port=”80″

69     <Connector port=”80″ protocol=”HTTP/1.1″

設定好後儲存離開

 

1.2 重啟Tomcat

 

[root@localhost ~]#  /opt/apache-tomcat-6.0.33/bin/startup.sh

Using CATALINA_BASE:   /opt/apache-tomcat-6.0.33

Using CATALINA_HOME:   /opt/apache-tomcat-6.0.33

Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.33/temp

Using JRE_HOME:        /usr/java/jdk1.6.0_29/jre

Using CLASSPATH:       /opt/apache-tomcat-6.0.33/bin/bootstrap.jar

[root@localhost bin]# netstat -ntulp | grep java    #查看Port是否有設定成功

tcp      0     0 127.0.0.1:8005      0.0.0.0:*      LISTEN      3275/java          

tcp      0     0 0.0.0.0:8009        0.0.0.0:*      LISTEN      3275/java          

tcp      0     0 0.0.0.0:80          0.0.0.0:*      LISTEN      3275/java

 

 

2. 指定網頁存放路徑

2.1 要設定網頁存放的位置,也請修改server.xml

 

[root@localhost ~]#  vim /opt/apache-tomcat-6.0.33/conf/server.xml

#原文內容

128       <Host name=”localhost”  appBase=”webapps”

129             unpackWARs=”true” autoDeploy=”true”

130             xmlValidation=”false” xmlNamespaceAware=”false”>

#添加一行內容

128       <Host name=”localhost”  appBase=”webapps”

129             unpackWARs=”true” autoDeploy=”true”

130             xmlValidation=”false” xmlNamespaceAware=”false”>

133  <Context path=”" docBase=”/opt/apache-tomcat-6.0.33/webapps/web” debug=”0″ reloadable=”false”/>

#此行內容說明的是當在瀏覽器輸入http://ip時,會訪問到/opt/apache-tomcat-6.0.33/webapps/web下的資料,也就是說/opt/apache-tomcat-6.0.33/webapps/web此行可以依個人的設定而改變

 

 

以下有幾種設定的方式 可供參考

 

<Context path=“/test” docBase=“/opt/apache-tomcat-6.0.33/webapps/web” debug=”0″ reloadable=”false”/>

#在瀏覽器輸入http://ip/test時,可以訪問到/opt/apache-tomcat-6.0.33/webapps/web下的資料

 

<Context path=“/” docBase=“/opt/apache-tomcat-6.0.33/webapps/web” debug=”0″ reloadable=”false”/>

#瀏覽器輸入http://ip/時,訪問到的是tomcat安裝目錄下/opt/tomcat1/webapps/ROOT裡的資料

 

<Context path=“” docBase=“/opt/apache-tomcat-6.0.33/webapps/web” debug=”0″ reloadable=”false”/>

#瀏覽器輸入http://ip時,會訪問到/opt/apache-tomcat-6.0.33/webapps/web下的資料

 

2.2 重啟Tomcat

只要在server.xml有做設定上的修改都需要重啟Tomcat

 

[root@localhost ~]#  /opt/apache-tomcat-6.0.33/bin/startup.sh

Using CATALINA_BASE:   /opt/apache-tomcat-6.0.33

Using CATALINA_HOME:   /opt/apache-tomcat-6.0.33

Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.33/temp

Using JRE_HOME:        /usr/java/jdk1.6.0_29/jre

Using CLASSPATH:       /opt/apache-tomcat-6.0.33/bin/bootstrap.jar

 

 

3. Tomcat Server.xml說明

參數名
屬性
解釋
server
port
指定一個port,此port負責監聽關閉tomcat的請求
shutdown
指定向port發送的指令
service
name
service的名字
Connector(客戶端和service之間的連接)
port
server端要創建的port,並在這個port監聽來自客戶端的請求
minProcessors
服務器啟動時建立的連線數
maxProcessors
最大可以建立的連線數
enableLookups
若為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠端客戶端的實際主機名。
若為false則不進行DNS查詢,而是返回其ip地址
redirectPort
服務器正在處理http請求時收到了一個SSL傳輸請求後,重新設定的port
acceptCount
當所有可以使用的連線數都被使用時,會放到處理佇列中等候,超過此兩個數時的請求將不予處理
Connection Timeout
指定連線時間限制(以毫秒為單位)
Engine(表示service中的請求處理,接收和處理來自Connector的請求)
defaultHost
處理請求的主機名,至少與其中的一個host的name屬性值是一樣的
Context(表示一個web應用程序,通常為WAR文件,關於WAR的詳細說明可參考servlet規範)
docBase
應用程序的路徑或者是WAR文件存放的路徑
path
表示此web應用程序的url的前綴,輸入的url為http://localhost:8080/path/****
reloadable
這個屬性非常重要,若為true,則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重啟tomcat的情況下改變應用程序
host(表示一個虛擬主機)
name
主機名
appaBase
應用程序基本目錄,即存放應用程序的目錄
umpackWARs
若為true,則tomcat會自動將WAR文件解壓縮,否則不解壓縮,直接從WAR文件中運行應用程序
Logger(log表示法)
className
必須實現org.apache.catalina.Logger的port
prefix
Log文件開頭的設定
suffix
Log文件結尾的設定
timestamp
如果為true,則log文件名字中要加入時間,如下例:localhost_log.2001-10-04.txt
Realm(表示存放用戶名,密碼及role的資料庫)
className
指定Realm使用的分類名稱,此分類名稱必須實現org.apache.catalina.Realm接口
Valve(功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣)
className
指定Valve使用的分類名稱,如用org.apache.catalina.valves.AccessLogValve的分類,可以記錄應用程序的訪問訊息
directory
指定log文件存放的位置
pattern
有兩個數值,common方式記錄遠端主機名或ip地址,用戶名,日期,第一行請求的字符串,HTTP響應代碼,發送的字數。 combined方式比common方式記錄的數值更多



 


 

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

  1. bestlong 說: 2013/08/17

    單就 Tomcat 修改 port 的需求是這樣處理沒錯,不過您的啟動測試是用在 Linux 環境使用 root 帳號的權限處理,所以使用 80 Port 應該不會碰到權限的問題。但是考量安全性都會用其他帳號來啟動,可是會得到沒有權限的錯誤

    • Derek 說: 2013/09/16

      權限的部份,基本上如果你設定的好。就不會有太大的問題了

發表評論至 bestlong

*