利用tomcat在一台主机运行多个不同域名的java项目

背景:

最近想搞几个不同的网络项目,奈何囊中羞涩,没有足够的money去购物多台云服务器,所以尝试在一台主机上部署多个java项目,所以就利用Tomcat尝试完成这项工作。过程中也走了不少的弯路,最终实现了在一台云主机上运行了多个java项目。当然这个项目的访问量没有特别大。如果有相同需求的伙伴可以借鉴,也可提供更好的解决方案。分享次数不多,如有不好请谅解。
 
环境:
    Tomcat 8.0+jdk 8 

操作步骤

一、修改发布端口号为80(Tomcat默认为8080):其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变。这样客户机在访问服务器时直接输入IP或域名就可以了
     打开配置文件(偶的如下:D:\Program Files\Tomcat\conf\server.xml),找到:
<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" />

二、修改tomcat发布路径(默认路径:D:\Program Files\Tomcat\webapps\ROOT)

    打开配置文件(偶的如下:D:\Program Files\Tomcat\conf\server.xml),找到:

<Engine name="Catalina" defaultHost="localhost">
    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false"> 
  
    </Host>

</Engine>

在<host></host>标签之间添加上:<Context path="" docBase="apps" debug="0" reloadable="true" /> 。修改为:

<Engine name="Catalina" defaultHost="localhost">
    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false"> 
          <Context path="" docBase="apps" debug="0" reloadable="true" />
    </Host>

</Engine>

path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;
docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个apps目录,让该目录作为默认目录。
debug和reloadable一般都分别设置成0和true。
重启服务器,访问服务器时就找$tomcat/webapps/apps下的项目了

三、多域名绑定
    打开配置文件(偶的如下:D:\Program Files\Tomcat\conf\server.xml),找到:

<Engine name="Catalina" defaultHost="localhost">
    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">     

    </Host>
</Engine>

修改为:

<Engine name="Catalina" defaultHost="www.hpu56.cn">  
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>  
    <Host name="app.hpu56.cn"  appBase="hpu56"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">  
    </Host>
    <Host name="www.hpu56.cn"  appBase="D:\project\hpu56"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
    </Host>

    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
    </Host>

</Engine>

Engine 的 dafaultHost :表示访问该tomcat默认进入的主机,注意一定不能是localhost,不然别人通过你的ip访问,就会默认进入tomcat的管理界面.

Host 的 name:表示该主机绑定的域名,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host.

Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径.

操作完成。

操作之后重启Tomcat,多个项目成功启动,可以通过浏览器访问多个项目的页面了。

1.如果我在浏览器中输入http://localhost 则访问 D:\Program Files\Tomcat\webapps\apps 下的网站
2.如果输入http://www.hpu56.cn 则访问 D:\Program Files\Tomcat\hpu56\ROOT 下的网站
3.如果输入http://app.hpu56.cn 则访问 D:\project\hpu56\ROOT 下的网站. 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值