原创

Tomcat域名和端口设置

Tomcat域名和端口设置
准备工作

1.下载并安装Tomcat
2.TomcatWebapps目录下增加两个项目,分别为app01 app02,项目内容自定义,本例中两个项目中只包含index.html

设置多个端口访问同一个WebApp
默认情况下,server.xml中只包含8080的端口配置,浏览器访问http://localhost:8080/app01/index.html 时候会跳转到app01程序的index页面

按照下面的配置修改server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"  executor="tomcatThreadPool" URIEncoding="UTF-8" />
<Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"  executor="tomcatThreadPool" URIEncoding="UTF-8" />
<Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443"  executor="tomcatThreadPool" URIEncoding="UTF-8" />

修改以后,我们可以使用
http://localhost:8080/app01/index.html
http://localhost:8081/app01/index.html
http://localhost:8082/app01/index.html

访问app01的index页面
设置不同域名访问不同WebApp
在Engine节点中增加下面的信息

<Host appBase="webapps" autoDeploy="true" name="www.app01.com" unpackWARs="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b"  prefix="localhost_access_log." suffix=".txt"/>
    <Context docBase="app01" path="" reloadable="true" source="org.eclipse.jst.jee.server:app01"/>
</Host>
<Host appBase="webapps" autoDeploy="true" name="www.app02.com" unpackWARs="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
    <Context docBase="app02" path="" reloadable="true" source="org.eclipse.jst.jee.server:app02"/>
</Host>

然后在host文件中增加配置

127.0.0.1    www.app01.com
127.0.0.1    www.app02.com
127.0.0.1    www.app03.com

此时我们访问 http://www.app01.com ,Tomcat会自动根据上面的配置跳转到Webapps目录下,然后根据docBase目录指示的app01,跳转到app01项目中,此时我们就访问到了app01项目的index页面,同样,使用http://www.app02.com 可以访问app02.

设置不同域名不同端口访问不同WebApp
现在我们有新的需求,需要访问 www.app03.com:6666 访问app03项目,此时,需要在server节点下,新增service节点

<Service name="Catalina-Test">
    <Connector connectionTimeout="20000" port="6666" protocol="HTTP/1.1" redirectPort="8443" executor="tomcatThreadPool" URIEncoding="UTF-8" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
    <Engine defaultHost="localhost" name="Catalina">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host appBase="webapps" autoDeploy="true" name="www.app03.com" unpackWARs="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
          <Context docBase="app03" path="" reloadable="true" source="org.eclipse.jst.jee.server:app03"/>
      </Host>
    </Engine>
</Service>

重启Tomcat,访问http://www.app03.com:6666 就可以直接访问到app03项目了

正文到此结束
本文目录