`
01jiangwei01
  • 浏览: 541613 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个Tomcat支持不同的域名访问各自不同程序的配置方法

    博客分类:
  • java
 
阅读更多
更多信息可以参考网址:http://329937021.iteye.com/blog/552494
条件是:这样一种实际情况是,就一台服务器,当公网的IP地址也只有一个。
 
应用是:不同的域名访问后访问相对应的不同的程序。
 
举个例子来说如下:
 
有一个域名叫www.yuming.com
 
另一个一名叫bbs.yuming.com
 
曾经想过部署多个tomcat,然后用不同的端口来对应不用的域名。这样是很不好的,不可能指望用户去记住输入端口号(不是默认的80)。
 
例如:www.yuming.com,              bbs.yuming.com:8080/
 
还有就是在一个tomcat下面部署多个应用,然后通过域名+应用名的方式访问,也不好,不够简洁。
 
例如:www.yuming.com/    (只能隐藏一个工程名)          bbs.yuming.com/bbs或www.yuming.com/bbs
 
以上两种方式虽然都做到了形似不同的域名访问了不同应用,但实际效果还是很不好的,我就想输入www.yuming.com或bbs.yuming.com就能访问了。还有就是想过用跳转的方式等等实现都不是很好。
 
刚刚试了一下原来是有其他方法的,以前没注意过,愚昧了。呵呵。
 
方法是基本只需修改server.xml即可,步骤如下:
 
在tomcat的conf/server.xml里面找到如下信息
 
<Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
 
 
将上面的代码复制,加到此代码前面,并加上标签结束符号,如下:
 
<Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
</Host>
 
<Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
修改上面Host标签name属性值,将localhost改为bbs.yuming.com;修改下面Host标签name属性值,将localhost改为www.yuming.com,修改后如下:
 
<Host name="bbs.yuming.com" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
</Host>
 
<Host name="www.yuming.com" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
在tomcat目录下新建一个叫webapps2的文件夹,将bbs.yuming.com对应的那个Host标签appBase属性值为webapps2,修改后如下:
 
<Host name="bbs.yuming.com" appBase="webapps2"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
</Host>
 
<Host name="www.yuming.com" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
如 此,我们已经做到了不同的域名只能访问自己对应的那个项目目录了。当然这样还没有完,在webapps或webapps2下面是能发布项目了,但现在还是 需要输入域名+项目名。下面再做一下处理,将工程名为test的项目拷贝到webapps下,将testbbs项目拷贝到webapps2下,在Host 标签内各增加一个Context上下文标签,修改后如下:
 
<Host name="bbs.yuming.com" appBase="webapps2"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="test" reloadable="true">
</Context>
</Host>      
<Host name="www.yuming.com" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="testbbs" reloadable="true">
</Context>
 
这样做启动tomcat会发现,每个项目被发布了两遍。一遍是带工程名的,一遍是不带工程名的。要只发布一次的话,就将项目放在webapps和webapps2文件夹外的任意目录。通过配置指向发布,如下:
 
例如放在D:\project\test和D:\project\testbbs,最终修改配置后如下:
 
<Host name="bbs.yuming.com" appBase="webapps2"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\\project\\test" reloadable="true">
</Context>
</Host>      
<Host name="www.yuming.com" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\\project\\testbbs" reloadable="true">
</Context>
 
重新启动tomcat即可。如果想测试看看效果的话,可以在配置本地的hosts例如:
 
打开C:\WINDOWS\system32\drivers\etc\hosts  ,编辑如下:
 
127.0.0.1       localhost
192.168.1.11 bbs.yuming.com
192.168.1.11 www.yuming.com
 
好了,在浏览器里面输入www.yuming.com或bbs.yuming.com就能访问各自的工程了。
分享到:
评论

相关推荐

    Tomcat支持不同的域名访问各自不同程序的配置方法

    本篇文章将深入探讨如何配置Tomcat以支持不同的域名访问各自独立的应用程序。 首先,理解基础配置:在Tomcat的`conf/server.xml`文件中,`Host`元素是用于定义虚拟主机的关键。每个`Host`元素代表一个域名,可以...

    nginx-配置多个tomcat

    本示例中的"nginx-配置多个tomcat"就是这样一个应用场景,它涉及到Nginx和Tomcat两个核心组件,以及如何通过Nginx作为反向代理来管理多个Tomcat实例。 **Nginx** 是一款高性能的HTTP和反向代理服务器,以其轻量级、...

    Tomcat6部署一个web工程 配置SSL双域名双证书

    标题中的“Tomcat6部署一个web工程配置SSL双域名双证书”是指在Apache Tomcat 6版本中,如何为一个Web应用程序配置SSL(Secure Sockets Layer)以支持两个不同的域名并使用各自的数字证书进行安全通信。这个过程对于...

    tamcat绑定多个域名&配置虚拟目录

    #### 一、Tomcat绑定多个域名的方法 ##### 1. 修改默认端口 为了实现多个域名指向同一个Tomcat实例,我们首先需要更改Tomcat的默认访问端口8080为80。这一步是必要的,因为大多数Web浏览器会默认连接到端口80来访问...

    tomcat中文帮助手册

    6. **虚拟主机**:介绍如何配置多个虚拟主机,使Tomcat可以同时处理多个域名的应用。 7. **连接器与协议**:讲解`Connector`元素在`server.xml`中的配置,包括HTTP、AJP等协议的使用,以及调整连接器参数以优化性能...

    IIS、TOMCAT和APACHE整合

    在IT行业中,IIS(Internet Information Services)、Tomcat和Apache都是常见的Web服务器,它们各自有着不同的特性和用途。本文将详细探讨如何实现这三种服务器的整合,以及它们共用同一个端口的可能性。 首先,让...

    Apache+Tomcat集群配置

    Apache是一款强大的HTTP Web服务器,支持多种操作系统(如Windows、Linux、MacOS等),而Tomcat则主要作为Java Servlet容器运行Java Web应用程序。 - **Apache**: 负责处理静态资源,如HTML页面、图片文件等,并...

    nginx实现Tomcat反向代理

    在IT行业中,尤其是在服务器部署和优化领域,Nginx与Tomcat的组合是常见的解决方案,因为它们各自在处理不同类型的请求上具有优势。Nginx以其高性能、低资源消耗著称,适合处理静态内容和反向代理任务;而Tomcat作为...

    Tomcat建立虚拟主机最佳实践

    在Apache Tomcat服务器中,虚拟主机(Virtual Host)是一种将多个域名或应用程序映射到同一台服务器上的技术。这使得一台服务器能够处理来自不同域名的请求,而每个域名看到的是各自独立的应用环境。在本文中,我们...

    java源码:Java应用服务器 Tomcat.zip

    7. **Host**:用于配置和管理虚拟主机,一个Tomcat实例可以托管多个域名的应用。 深入研究Tomcat源码,你可以了解到以下知识点: 1. **Servlet生命周期**:通过Catalina组件,可以看到Servlet的加载、初始化、服务...

    tomcat中Server.xml的标签释义

    `Host`元素关联了网络名称(如`www.yourcompany.com`)与Tomcat服务器,它使得一个`Engine`可以同时服务于多个不同的域名。每个`Host`还可以配置多个网络别名,如`yourcompany.com`和`abc.yourcompany.com`,增强了...

    基于springboot+uniapp微信小程序实现的学生互动课堂,采用前后端分离开发模式.zip

    UniApp是一个多端开发框架,允许开发者使用一套代码编写,同时支持H5、微信小程序、支付宝小程序等多平台。它基于Vue.js,提供了丰富的组件库和API,简化了跨平台开发。在这个互动课堂中,UniApp负责展示用户界面,...

    常见的web服务器日志切割方法

    ### 常见Web服务器日志切割方法 ...综上所述,无论是IIS、Apache还是Tomcat,都有各自的方法来实现日志文件的有效管理和发布。合理的日志管理不仅可以提高数据安全性,还可以为后续的数据分析提供强有力的支持。

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    Openfire_spark_安装手册.pdf

    1. **Openfire**:这是一个基于Jabber协议(XMPP)实现的即时通讯服务器端软件,推荐使用版本为3.6.4,这是当前最新且稳定的支持版本,可以从官方网站或第三方资源获取源代码。 2. **Spark**:作为即时通讯客户端,...

    Openfire_spark安装手册.pdf

    为了使Openfire能够在网络环境中正常工作,需要为服务器配置一个域名。这一步骤对于确保客户端能够正确连接到服务器至关重要。如果局域网中没有域服务器,则需要手动配置主机文件来实现。 - 在Windows系统中,打开`...

Global site tag (gtag.js) - Google Analytics