前提.首先保證你的Tomcat按照是沒有任何問題的。如有問題則可能按照本教程也無效。
1.打開配置文件(我的如下:C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\server.xml),找到:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
修改如下:
<Connector port="80" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" /> <Connector port="80" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" />
把port:8080,修改成port:80就可以了,其他的參數不變。這樣客戶機在訪問服務器時直接輸入IP或域名就可以了
2.修改tomcat的字符集對應亂碼問題
<Connector port="80" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="80" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
修改為:
<Connector port="80" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="80" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
修改tomcat發布路徑(默認路徑:C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT)
打開配置文件(我的在:C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\server.xml),找到:
<Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine>
在<host></host>標簽之間添加上:
<Context path="" docBase="rms" debug="0" reloadable="true" /> <Context path="" docBase="項目路徑" debug="0" reloadable="true" />
docBase是虛擬目錄的路徑,它默認的是$tomcat/webapps/ROOT目錄,現在我在webapps目錄下建了一個photo目錄,讓該目錄作為我的默認目錄。debug和reloadable一般都分別設置成0和true。
這樣,再訪問服務器時就找$tomcat/webapps/rms下的頁面了.
3.多域名綁定
<Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine>
A:多個工程在不同的目錄下
<Engine name="Catalina" defaultHost="pic.jb51.net"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Host name="xixi.jb51.net" appBase="abcapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Engine name="Catalina" defaultHost="pic.jb51.net"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Host name="xixi.jb51.net" appBase="abcapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="haha.jb51.net" appBase="D:\Program Files\Tomcat\test" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="lala.jb51.net" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> <Host name="haha.jb51.net" appBase="D:\Program Files\Tomcat\test" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="lala.jb51.net" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine>
測試在C:\WINDOWS\system32\drivers\etc下的hosts文件中添加如下內容:
127.0.0.1 xixi.jb51.net
127.0.0.1 lala.jb51.net
127.0.0.1 haha.jb51.net
按照上面的配置:
1. http://xixi.jb51.net 訪問 ${tomcat}\ abcapps\ROOT 下的網站
2. http://haha.jb51.net 訪問 D:\Program Files\Tomcat\test\ROOT 下的網站
3. http://lala.jb51.net 訪問 ${tomcat}\webapps\ROOT 下的網站.
Engine的dafaultHost:表示訪問該tomcat默認進入的主機,注意一定不能是localhost,不然別人通過你的ip訪問,就會默認進入tomcat的管理界面.
Host 的 name:表示該主機綁定的域名,如果綁定localhost則可以通過在瀏覽器中輸入localhost訪問該Host.
Host的 appBase:表示該主機綁定的文件存放路徑,可以使用相對路徑或絕對路徑.
B:多個工程在同一目錄webapps下,即在不同的<host></host>里面配<Context>
<Engine name="Catalina" defaultHost="xixi.jb51.net"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Host name="xixi.jb51.net" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="test1" debug="0" reloadable="true" /> </Host> <Host name="haha.jb51.net" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="test2" debug="0" reloadable="true" /> </Host> <Host name="lala.jb51.net" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="test3" debug="0" reloadable="true" /> </Host>
