Linux系统通过设置二级域名访问项目

应用背景:某公司已有官网和域名,后随着业务扩展,又相继开发了三个项目。起初,这三个项目是通过服务器ip地址+项目名进行访问。但后来由于公司服务器托管方迁移机房,原先IP地址不能再使用,从而导致移动端产品无法进行使用,须修改项目中涉及到IP地址引用的地方,生成新的apk,重新发布,扩展性差。公司决定从长远着想,放弃使用IP访问项目的方式,改而使用域名进行访问。但考虑到实际情况,不可能为每个项目都申请一个顶级域名,所以提出使用三个二级域名,分别配置到三个项目中,从而实现使用域名访问项目,以后如果服务器IP地址发生改变,只需在域名管理平台修改IP地址即可。

总体步骤是:1.申请二级域名,绑定服务器IP;
2.修改默认端口号;
3.配置tomcat中的server.xml。

下面分开详细讲解具体实现:

1.登录域名管理平台,点击域名管理,选中要绑定到的顶级域名,然后点击域名解析:
这里写图片描述

点击后弹出域名解析的操作界面,在子域名/主机名处输入你要绑定的二级域名,Type使用默认的就好,同步建立子网站处输入项目所在服务器的IP地址,然后点击添加次级域名即可.如下图:
这里写图片描述
2.修改默认端口号:tomcat默认监听端口是8080,我们如果想不带端口的直接访问项目,就必须监听80 端口;我们需要把service.xml文件里的

<Connector port="8080" protocol="HTTP/1.1" 的**port值改为80**

3.修改tomcat/conf里面的server.xml的配置

首先保证三个项目正常部署在同一个tomcat里,默认端口号是都是80,这时候访问的url均为http://IP地址/各自项目名/

然后修改tomcat配置,如果注释掉原本的host配置,将会导致只能使用域名进行访问 不能再使用原来的IP地址进行访问。新增三个host,

      <!-- 注释掉原来默认的Host-->
      <!-- <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
      </Host>  -->
      <!--新增3个项目的配置-->
    <Host name="health.develop.com"  appBase="/usr/local/tomcat/health/"
            unpackWARs="true" autoDeploy="true">
		xmlValidation="false" xmlNamespaceAware="false"> 
    </Host>
	
	<Host name="krk.develop.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 
	  <Context path="" docBase="/usr/local/tomcat/apache-tomcat-7.0.57/webapps/krk" debug="0" reloadable="true"/> 
    </Host>
    
    <Host name="smart.develop.com"  appBase="webapps"  unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
       <Context path="" docBase="/usr/local/tomcat/apache-tomcat-7.0.57/webapps/Smart" debug="0" reloadable="true"/> 
    </Host>

三个host配置的name对应三个域名,下面的context节点的docBase分别对应三个项目路径,Context的path属性不用配置。

最后重启tomcat,即可实现使用域名访问项目了。

细心的网友可能是发现,第一个项目与第二个项目配置不太一样,当我把第一种方式替换成跟第二、三种一样的的配置方式时,发现竟然报如下异常,java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded,项目也访问不了。无奈只能采取两种配置方式并存,不知是什么原因,知道的网友不妨说下。
回归正题,这里面涉及到appBase和docBase的区别了

我们先看appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用

而docBase只是指向了你某个应用的目录,这个可以和appBase没有任何关系。

所以如果你想自己指定路径,那么应该在docBase里面。

同时要注意的是server.xml是tomcat的核心配置文件,如果在修改过程中出错,重启后可能tomcat就会报错,或者没报错,但是项目就是访问不了,不用想,肯定是server.xml哪里不小心配置错了,少个符号,少个闭合标签均有可能,总之要细心。关于第一种项目配置方式,我将在另一篇博客中讲述,陷于篇幅关系,就不在这里赘述了。
补充,另一篇地址:https://blog.csdn.net/shenxiaomo1688/article/details/80946154

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全新二级域名分发系统是一种基于php开发的源码,该系统用于管理和分发二级域名。通过该系统,管理员可以创建、编辑和删除二级域名,并将其分发给用户。 系统的源码使用php语言编写,具有良好的可扩展性和灵活性。它可以在各种操作系统和服务器环境下运行,如Windows、Linux和Apache、Nginx。 该系统的主要功能包括: 1. 管理员功能:管理员可以通过登录后台管理界面进行二级域名的管理。他们可以创建新的二级域名设置相关参数,如域名指向的目录、访问权限等。管理员还可以编辑和删除已有的二级域名。 2. 用户功能:用户可以通过注册账户,申请并获取一个二级域名。他们可以选择一个可用的二级域名,并将其与自己的网站或应用程序关联。用户还可以管理自己的二级域名,如修改指向的目录或删除二级域名。 3. 域名分发功能:系统通过将二级域名与对应的目录进行关联,实现域名的分发功能。当用户访问某个二级域名时,系统会根据配置将请求转发到对应的目录,从而实现网站或应用的访问。 4. 安全性和权限控制:系统具有一定的安全性和权限控制机制,以确保只有合法的用户可以管理和访问二级域名。管理员可以设置访问权限,限制某些用户对特定二级域名的管理权限。 总之,全新二级域名分发系统php源码是一种功能强大的二级域名管理和分发系统,适用于各种网站和应用程序的需求。通过该系统,管理员可以轻松地管理和分发二级域名,而用户可以方便地获取和管理自己的二级域名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值