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方式記錄的數值更多
|
單就 Tomcat 修改 port 的需求是這樣處理沒錯,不過您的啟動測試是用在 Linux 環境使用 root 帳號的權限處理,所以使用 80 Port 應該不會碰到權限的問題。但是考量安全性都會用其他帳號來啟動,可是會得到沒有權限的錯誤
權限的部份,基本上如果你設定的好。就不會有太大的問題了