轉自http://hi.baidu.com/zml525/blog/item/59a3a277ed10ba19b051b957.html
1.C:\WINDOWS\system32\drivers\etc下的hosts文件
加入域名解析相關的東西,比如:
127.0.0.1 localhost
127.0.0.1 test.001m.cn
127.0.0.1 www.001m.cn
如果在實戰中,前邊的127.0.0.1換作公有IP地址
2.Tomcat 5.0\conf下的server.xml文件
(2.1)
修改端口號(默認為8080,現改為80):
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified during installation -->
<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
(2.2)
添加發布文件夾,并為每個文件夾指定要綁定的域名:
因為想要實現,在發布文件夾根目錄下發布項目,所以,一個文件夾只能發布一個項目,所以,要指定不同的文件夾。
在<Host name=" 此處是要綁定的域名 " debug="0" appBase=" 此處是發布目錄 "
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
如果要建多個發布目錄,可以在<Host name.....></Host> 的前邊再加上一個<Host name....></Host>
(2.3)
在前邊的工作做好之后,啟動服務器,就會發現,Tomcat 5.0\conf\Catalina下多了幾個文件夾,文件夾名就是你前邊<Host..>
</Host>中存在的發布文件夾的名字。然后,把相應的配置文件*.xml放在對應的Tomcat 5.0\conf\Catalina里的文件夾里。
而且讓他們的路徑是根目錄下,這樣訪問時就可以直接打綁定好的域名訪問了。比如:
<Context path="" reloadable="true" docBase="hnnj">
<Resource name="jdbc/hnnj" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/hnnj">
3.好啦,一切問題就解決了。好爽啊!
補:127.0.0.1 test.001m.cn這里的域名要和<Host name=" 此處是要綁定的域名 "..>這里的域名一致,否則
也不會在Tomcat 5.0\conf\Catalina下生成文件夾,就不會達到既定目標了。呵呵!
4.附錄:
(4.1)
C:\WINDOWS\system32\drivers\etc下的hosts文件,內容格式為:IP地址 域名
例如:
202.102.240.91 web.nyist.net
(4.2)
Tomcat 5.0\conf下的server.xml文件,內容基本為:(注:server.xml里的一些注釋我給省去了)
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<!-- Comment these entries out to disable JMX MBeans support -->
<!-- You may also configure custom components (e.g. Valves/Realms) by
including your own mbean-descriptor file(s), and setting the
"descriptors" attribute to point to a ';' seperated list of paths
(in the ClassLoader sense) of files to add to the default list.
e.g. descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"
-->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry. SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 5 documentation bundle for more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified
during installation -->
<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
<!-- Note : To use gzip compression you could set the following properties :
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"
acceptCount="100" debug="0" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />
-->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost" debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>
<Host name="www.001m.cn" debug="0" appBase="test"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="test.001m.cn" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
</Host>
</Engine>
</Service>
</Server>
(4.3)
現在文件夾的結構是:
Tomcat-->bin\common\conf\logs\server\work\temp\sharedwebapps\test;
conf-->Catalina-->test.001m.cn\www.001m.cn;
test.001m.cn-->hnnj.xml;
www.001m.cn-->hnnj_test.xml
test-->hnnj_test;
webapps-->hnnj;
其中,hnnj和hnnj_test是項目目錄;test和webapps是發布目錄;