Tomcat8配置多个端口访问各端口对应的JavaWeb项目

背景:最近遇到个项目部署的小要求:一个tomcat下配置多个端口去访问端口对应的JavaWeb项目

原理:tomcat中conf下server.xml文件中的service节点即可配置tomcat的端口号及对应的项目

配置步骤:

1.打开tomcat下conf文件夹中的serve.xml文件,找到service节点对应的代码

 <Service name="Catalina">
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <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="localhost" unpackWARs="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>

    </Engine>
  </Service>

2.粘贴1步骤中找到的service节点代码,复制到service结尾处,使两个service节点成为兄弟节点,即:

<Service name="Catalina">
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <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="localhost" unpackWARs="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>

    </Engine>
  </Service>
<Service name="Catalina_second"> <!--保证service的name属性值不同-->
    <Connector connectionTimeout="20000" port="8500" protocol="HTTP/1.1" redirectPort="8443"/> <!--修改port为你想要使用的端口,注意不能被占用-->
    
    <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>--> //注释掉这句话

    <Engine defaultHost="localhost" name="Catalina_second"> <!--保证service中Engine节点的name值不同-->

      <Realm className="org.apache.catalina.realm.LockOutRealm">
       
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>

      <Host appBase="webapps_second" autoDeploy="true" name="localhost" unpackWARs="true"> <!--在Tomcat的根目录下新建一个webapps_second文件夹存放war包-->

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
	<Context path="" docBase="test" debug="0" reloadable="true"/> <!--这句话可以使该端口下项目中的某个页面为访问域名的首个页面,docBase为项目名-->
    </Engine>
  </Service>

至此已经实现tomcat多个端口部署多个项目,下面介绍的是将域名与某个项目的页面绑定。

3.在service下的host节点中加上<Contextpath=""docBase="test"debug="0"reloadable="true"/>(test为项目名),然后打开conf下的web.xml文件,在welcom-file-list中配置对应项目的首页面

   tip:<Contextpath=""docBase="test"debug="0"reloadable="true"/>和3步骤主要用于户域名和页面的绑定,即输入域名访问项目的哪个页面


4.,保存文件,重启tomcat,即可通过不同端口访问对应项目了


--------------------2018/4/1 22:26更新------------------

tip:

1.<Context path="" docBase="test" debug="0"reloadable="true"/>

           path留空的话表示配置的域名直接访问该项目,path填写项目名的话表示域名后面带上项目名才能访问该项目。docBase项目访问路径。(一般webapp下面的root配置的path就为空)

 2.

2.1. 域名。现在的域名不是很贵,有很多人都有,而我们注册域名的网站也会有一个DNS助解析,就是把服务器的IP绑定到这些域名上。


2.2.我们域名有了,现在就来说说我们的项目;比如说我现在有两个项目都在我的这个tomcat下面。那我们输入http://localhost:8080/abc就可以访问到我们abc这个项目了,但是端口号8080如何去掉呢?


在tomcat的conf文件夹下有一个server.xml。我们打开这个文件,找到8080,只需要把8080改成80即可。当我们再次输入http://localhost/abc即可。


2.3. 可是我们的域名如何跟项目绑定到一起呢?我们再次找到tomcat下面的conf文件夹里面的server.xml。


修改<Host name="我们所要绑定的域名" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>


2.4.当启动tomcat的时候,输入我们绑定的域名,是不是看到了我们的tomcat。可是我们想访问我们的项目还得再域名后面加上项目名称才能访问到,也就是说到现在我们的域名还没跟项目绑定到一起。


我们在看一下第三部,想让我们的项目和域名绑定到一起,我们只需要在</Host>前面加上<Context docBase="项目名" path=""  reloadable="true" >即可。


例如:<Host name="www.abc.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="baidu" path=""  reloadable="true" ></Host>


2.5. 当我们的有两个项目都放在同一个tomcat下的时候,我们只需要把<Host></ Host>加上两个既可以完成我们的2个项目的绑定,但是项目名称别忘了改哦。


2.6. 当我们的服务器自己维护(没有放在机房),我们需要对我们的路由做一下映射。就拿我的路由来举例。我的路由是TP-LINK WR340G型号,进入路由后,我们能找到一个转发规则,那里面有一个虚拟服务器的这项,点击新增条目以后会有:服务端口号、IP地址、协议、状态、常用服务端口号。我们只需在这里IP地址(服务器的局域网IP),协议选择ALL(有的路由好像没有这项,那就不需要填写了),状态选择生效,常用服务端口号选择HTTP或者WEB即可。这时默认的端口号为80。当常用服务端口号没有HTTP或者WEB这项时,可以选择DNS,然后手动把端口号改成80。点击生效。保存即可。如果说本人说的路由映射对您不适用或者没有看明白,可以上网找各种路由的映射方法。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页