服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - Tomcat实现多域名访问详解

Tomcat实现多域名访问详解

2021-08-26 16:05小破孩123 Tomcat

这篇文章主要介绍了Tomcat多域名访问详解,具有一定参考价值,需要的朋友可以了解下。

  对于域名解析相信很多小伙伴都了解过,就是我们在万网购买一个域名,比如hpugs.com,然后呢?我们希望域名与我们的服务器绑定,然后通过域名直接访问我们的项目,这就是本篇要和大家一起探讨的问题。下面开始我们的工作:

  1、首先是域名,登录万维网官网,填写我们想要购买的域名,然后就是查询是否已被抢注,如果没有被抢注,下面就是付钱购买了。

  2、有了域名,接下来就是我们的服务器了,大家可以根据自身的需求,进行选择,比如像小笔一样,是一枚穷逼,那怎么来模拟这个过程呢?答案当然是有的,我们可以把自己的电脑当做一台服务器。这样的话,我们的域名也无需购买了,通过修改本地hosts文件,自定义本地域名绑定。具体方法:打开C:\Windows\System32\drivers\etc找到hosts文件,用记事本打开,我们可以看到,localhost与我们的127.0.0.1是绑定的。

?
1
2
3
# localhost name resolution is handled within DNS itself.
#  127.0.0.1    localhost
#  ::1       localhost

  看到这里你是不是已经知道该怎么做了。

  3、有了域名和服务器,下面就是我们的Tomcat配置了,我们知道Tomcat服务器默认监听的是8080端口,而浏览器默认的端口是80,下面就是修改Tomcat的8080端口。打开Tomcat解压地址,找到config文件夹下的server.xml,找到

?
1
2
3
4
<Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443"
        maxPostSize="0" />

  然后把8080端口修改为80保存,然后启动Tomcat,在浏览器输入刚刚我们设置的域名点击回车,进入Tomcat的默认页面,表示我们的配置成功。

  4、穿插一个Tomcat的小配置说明:

  我们都知道get方式请求存在字符长度的限制,那么post请求有么有长度限制呢?相信写过APP服务接口的小童鞋可以遇到过这样的场景,当APP端通过Base64的方式进行照片上传时,当照片大小超过2M后,我们的服务端接收不到数据包,这是什么问题呢?答案当然不是post对于数据包有长度限制,这是因为Tomcat的内部对于数据包的长度有默认长度限制,最大支持的长度是2M,这个也是可以解决的,通过在server.xml下添加:maxPostSize="-1"即可。

?
1
2
3
4
5
6
7
8
<Connector port="80" protocol="HTTP/1.1"
      connectionTimeout="2000"
      redirectPort="8443"
      URIEncoding="UTF-8"
      maxThreads="5000"
      compression="on"
      compressableMimeType="text/html,text/xml"
      maxPostSize="-1"/>

5、下面就是我们域名与项目绑定:

  还是上面的server.xml文件,我们找的Engine标签,然后我们可以看到:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Engine name="Catalina" defaultHost="localhost">
 
    <Realm className="org.apache.catalina.realm.LockOutRealm">
      <!-- This Realm uses the UserDatabase configured in the global JNDI
        resources under the key "UserDatabase". Any edits
        that are performed against this UserDatabase are immediately
        available for use by the Realm. -->
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        resourceName="UserDatabase"/>
    </Realm>
    
    <!--localhost-->
    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log" suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
</Engine>

这就是我们的Tomcat默认绑定,我们可以通过localhost直接访问项目即是这个配置。下面我们配一个通过域名来访问项目的配置,在Engine标签下我们在添加一个Host配置:

?
1
2
3
4
5
6
7
<!--www.hpugs.com-->
    <Host name="www.hpugs.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log" suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      <Context docBase="C:\Program Files\apache-tomcat-8.5.13\webapps\pc-server" path="" reloadable="true" />
    </Host>

注意:Context 标签必须放置于Value下,不然Tomcat启动将会报错,这里解释两个参数:docBase项目实际路径;path项目访问虚拟路径。简单的说docBase指向我们的项目具体位置,path为我们访问路径。

  6、如何进行多域名绑定

  很简单如上,在Engine标签下我们再添加几个Host配置即可

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<Engine name="Catalina" defaultHost="localhost">
 
    <Realm className="org.apache.catalina.realm.LockOutRealm">
      <!-- This Realm uses the UserDatabase configured in the global JNDI
        resources under the key "UserDatabase". Any edits
        that are performed against this UserDatabase are immediately
        available for use by the Realm. -->
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        resourceName="UserDatabase"/>
    </Realm>
    
    <!--localhost-->
    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log" suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
 
    <!--www.hpugs.com-->
    <Host name="www.hpugs.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log" suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      <Context docBase="C:\Program Files\apache-tomcat-8.5.13\webapps\pc-server" path="" reloadable="true" />
    </Host>
    
    <!--m.hpugs.com-->
    <Host name="m.hpugs.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log" suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      <Context docBase="C:\Program Files\apache-tomcat-8.5.13\webapps\web-mobile-server" path="" reloadable="true" />
    </Host>
  </Engine>

7、最后需要说几点:

  defaultHost是指默认Host配置,当访问域名没有进行绑定时,使用默认Host配置

  Engine 标签下默认localhost配置,是为了没有进行域名项目绑定的域名,通过域名+项目名称来访问。

总结

以上就是本文关于Tomcat多域名访问详解的全部内容,希望对大家有所帮助。如有问题可以随时留言,小编会及时回复大家的。期待您的宝贵意见。

原文链接:http://www.cnblogs.com/AndroidJotting/p/7883633.html

延伸 · 阅读

精彩推荐
  • TomcatTomcat安装配置方法图文教程

    Tomcat安装配置方法图文教程

    这篇文章主要为大家详细介绍了Tomcat安装配置方法图文教程,java环境变量如何配置,Eclipse安装配置方法图文教程 ,为大家分享了三个教程,感兴趣的小伙...

    Tomcat教程网13292021-08-11
  • TomcatTomcat整体结构简单介绍

    Tomcat整体结构简单介绍

    这篇文章主要介绍了Tomcat整体结构简单介绍,Tomcat的本质是一个Servlet容器。一个Servlet能做的事情是:处理请求资源,并为客户端填充response对象,需要的朋友...

    叫我田露也行12302021-09-07
  • TomcatTomcat CentOS安装实现过程图解

    Tomcat CentOS安装实现过程图解

    这篇文章主要介绍了Tomcat CentOS安装实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考...

    agrin5842021-09-15
  • TomcatTomcat服务器的安全设置

    Tomcat服务器的安全设置

    tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过,在默认配置下其存在一定的安...

    IT专家网9002021-08-03
  • Tomcat解决Tomcat的maxPostSize属性的配置需要注意的问题

    解决Tomcat的maxPostSize属性的配置需要注意的问题

    这篇文章主要介绍了解决Tomcat的maxPostSize属性的配置需要注意的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...

    life is wonderful12012021-09-13
  • Tomcat一次tomcat源码启动控制台中文乱码的调试过程记录

    一次tomcat源码启动控制台中文乱码的调试过程记录

    平时在使用tomcat做一些服务的时候经常遇到各种乱码问题,下面这篇文章主要给大家介绍了一次tomcat源码启动控制台中文乱码的调试过程,需要的朋友可以...

    zhoutaoping199211852021-09-24
  • TomcatEclipse创建tomcat实现过程原理详解

    Eclipse创建tomcat实现过程原理详解

    这篇文章主要介绍了Eclipse创建tomcat实现过程原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    海绵般汲取11642021-09-16
  • Tomcat如何查看tomcat的控制台输出的方法

    如何查看tomcat的控制台输出的方法

    这篇文章主要介绍了如何查看tomcat的控制台输出的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    CaiCaiNeo11932021-08-29