`
songzhan
  • 浏览: 248809 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

一个jetty部署多个项目配置之方法

 
阅读更多
原文地址:http://my.oschina.net/wangyongqing/blog/115647
 
Jetty用户经常想配置他们的web应用到不同的虚拟主机。
通常情况下,一个单一的IP地址的机器有不同的DNS解析名与它相关联的,部署在这个机器上的web应用必须能够通过这些关联的DNS解析名访问到。

Another possibility is to serve different web applications from different virtual hosts.

1
2
3
4
5
6
另一种可能是不同的虚拟主机为不同的web应用提供服务。你可以用不同的方法设置虚拟主机,包括:
1)再context文件夹中放置一个context XML文件:setVirtualHosts. 这是一个完美的方法。
2)用java调用内嵌式jetty服务
3)再jetty.xml中明确列出要部署的项目列表或者类似的。
4)再项目的WEB-INF下面加一个自己的jetty-web.xml (在你不适用jetty提供的配置文件的情况下).
对于不同的方式来配置虚拟主机,包括文件,提供详细的配置说明的链接的说明,请参阅如何配置

jetty

 
实例一:配置一个虚拟主机
 
<!-- lang: xml -->
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/xxx</Set>
  <Set name="war"><SystemProperty name="jetty.home"/>/webapps/xxx.war</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>333.444.555.666</Item>
      <Item>127.0.0.1</Item>
      <Item>www.blah.com</Item>
      <Item>www.blah.net</Item>
      <Item>www.blah.org</Item>
    </Array>
  </Set>
</Configure>
 
如果你配置了jetty监听到8080端口,你可以通过如下方式访问到xxx.war
http://333.444.555.666:8080/xxx
http://127.0.0.1:8080/xxx
http://www.blah.com:8080/xxx
http://www.blah.net:8080/xxx
http://www.blah.org:8080/xxx
 
实例二:配置不用的虚拟主机用不同的contextPath
<!-- lang: xml -->
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/xxx</Set>
  <Set name="war"><SystemProperty name="jetty.home"/>/webapps/xxx.war</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>333.444.555.666</Item>
      <Item>127.0.0.1</Item>
      <Item>www.blah.com</Item>
      <Item>www.blah.net</Item>
      <Item>www.blah.org</Item>
    </Array>
  </Set>
</Configure>
 
<!-- lang: xml -->
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/zzz</Set>
  <Set name="war"><SystemProperty name="jetty.home"/>/webapps/zzz.war</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>777.888.888.111</Item>
      <Item>www.other.com</Item>
      <Item>www.other.net</Item>
      <Item>www.other.org</Item>
    </Array>
  </Set>
</Configure>
 
这里需要注意的是第二个没有配置127.0.0.1,因为两个都配置了就没法区分了
应用xxx.war 通过下面能访问到:
http://333.444.555.666:8080/xxx
http://127.0.0.1:8080/xxx
http://www.blah.com:8080/xxx
http://www.blah.net:8080/xxx
http://www.blah.org:8080/xxx
应用 zzz.war 通过下面法师能访问到:
http://777.888.888.111:8080/zzz
http://www.other.com:8080/zzz
http://www.other.net:8080/zzz
http://www.other.org:8080/zzz
 
实例三:配置不用的虚拟主机用相同的contextPath
<!-- lang: xml -->
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="war"><SystemProperty name="jetty.home"/>/webapps/xxx.war</Set>
  <Set name="contextPath">/</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>333.444.555.666</Item>
      <Item>127.0.0.1</Item>
      <Item>www.blah.com</Item>
      <Item>www.blah.net</Item>
      <Item>www.blah.org</Item>
    </Array>
  </Set>
</Configure>
 
<!-- lang: xml -->
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="war"><SystemProperty name="jetty.home"/>/webapps/zzz.war</Set>
  <Set name="contextPath">/</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>777.888.888.111</Item>
      <Item>www.other.com</Item>
      <Item>www.other.net</Item>
      <Item>www.other.org</Item>
    </Array>
  </Set>
</Configure>
应用 xxx.war 通过如下方式访问:
http://333.444.555.666:8080/
http://127.0.0.1:8080/
http://www.blah.com:8080/
http://www.blah.net:8080/
http://www.blah.org:8080/
应用 zzz.war 通过如下方式访问:
http://777.888.888.111:8080/
http://www.other.com:8080/
http://www.other.net:8080/
http://www.other.org:8080/
原文请参考http://wiki.eclipse.org/Jetty/Howto/Configure_Virtual_Hosts
分享到:
评论

相关推荐

    JettY 部署Web应用程序.doc

    每个Web应用都有其独特的上下文路径,使得在同一服务器上可以部署多个互不干扰的Web应用。 3. **上下文路径(Context Path)**:上下文路径是URL中与Web应用关联的部分,例如`/example`。它是Web应用的唯一标识符,...

    maven多模块项目+jetty热部署实例源码

    在Maven中,一个父项目(Parent POM)可以包含多个子模块(Child Modules),每个子模块都有自己的独立POM文件,这些POM共同构成了项目的构建体系。 1. **创建多模块项目** - 首先,创建一个父POM(parent-pom.xml...

    集成jetty的j2ee项目demo

    - 分析和理解这个项目,可以帮助开发者掌握如何配置Jetty以满足特定需求,例如设置虚拟主机、部署多个Web应用等。 - 通过修改项目配置,可以学习到如何优化Jetty的性能,比如调整线程池大小、开启GZIP压缩等。 ...

    tomcate和jetty虚拟目录配置方法

    它们都支持虚拟目录配置,使得我们可以将多个Web应用程序部署在同一服务器上,而无需更改全局服务器配置。虚拟目录允许我们为每个应用设置一个独立的URL路径,提高管理和部署的灵活性。下面我们将详细探讨Tomcat和...

    jetty启动的maven web项目

    在Maven项目结构中,通常会有多个模块,每个模块代表项目的一个部分。如果`zzq-main`是其中的一个模块,那么它可能有自己的`pom.xml`文件,定义了该模块的依赖和构建规则。在上述配置中,`contextPath`设置为`/zzq-...

    eclipse中配置使用jetty调试web项目

    Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,它允许开发者在本地环境快速部署和测试Web应用。本文将详细介绍如何在Eclipse中配置Jetty,并使用它来调试Web项目。 首先,你需要确保已经安装了Eclipse ...

    自己构建微服务(springmvc+内嵌jetty+maven 环境配置)

    总的来说,构建一个基于Spring MVC、内嵌Jetty和Maven的微服务涉及多个层次的技术整合,包括Web服务的搭建、服务间的通信以及项目的构建和管理。这样的配置为开发人员提供了灵活性,同时也确保了开发流程的高效性...

    一键部署demo+jetty+svn+ant配置

    本教程将详细介绍如何通过“一键部署”实现对一个基于Java的项目(DEMO)进行配置,结合Jetty服务器、Subversion(SVN)版本控制系统以及Ant构建工具的整合使用。 首先,让我们了解这些组件的作用: 1. **DEMO**:...

    在嵌入式jetty环境下运行struts2Annotation项目

    在嵌入式Jetty环境下运行Struts2 Annotation项目是一个常见的任务,特别是在开发和测试阶段,因为这种方式能够快速启动服务,而无需依赖大型服务器容器。本文将深入探讨如何配置和执行这个过程,以及涉及的关键技术...

    简单jetty配置

    2. `&lt;Set name="handler"&gt;`:这部分配置了服务器处理请求的处理器链,通常会包含一个或多个处理器,如`&lt;Ref id="Contexts"/&gt;`用于处理Web应用上下文,`&lt;Ref id="DefaultHandler"/&gt;`用于处理默认的HTTP响应。...

    main方法启动jetty

    标题"main方法启动jetty"指的就是通过编写一个包含main方法的Java类,调用Jetty的相关API来启动服务器。这种方式使得开发者能够自定义启动参数,便于调试和自动化部署。 **启动Jetty的基本步骤:** 1. **导入依赖*...

    maven工程在Jetty服务器上的自动化部署(开发者模式)

    3. **Jetty服务器**:Jetty是一个轻量级、高性能的Servlet容器,常用于开发和测试环境。它可以直接运行未打包的Web应用,适合快速迭代和调试。 4. **Jetty-Maven插件配置**:学习如何在`pom.xml`文件中配置Jetty...

    eclipse + maven多模块项目 + SpringMVC + jetty热部署实现验证码图片实例源码

    应网友要求,重新整理原《eclipse + maven多模块项目框架 + jetty热部署的实例源码》,增加了各配置的详细注释。 并且基于Spring MVC提供了一个完整功能:实现了生成验证码图片,以及验证输入是否匹配的两个接口,...

    Jetty中文手册

    Jetty是一个开源项目,提供了http服务器、http客户端和java servlet容器。 这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它包含教程、使用手册、视频...

    Jetty嵌入式服务器的JNDI快速配置指南

    - Jetty的JNDI配置使得资源管理更加灵活,便于在多个Web组件间共享。 - 通过`jetty.xml`、`realm.properties`和`webdefault.xml`,我们可以精细控制服务器的行为和安全设置。 - 了解并熟练掌握这些配置,将有助于...

    jetty-document

    配置Jetty涉及到多个方面,包括但不限于连接器配置、上下文路径设置、安全设置等。Jetty的配置文件主要位于`etc`目录下,采用XML格式。 ##### 3.2 上下文路径设置 每个Web应用都有一个唯一的上下文路径,用于访问...

    jetty相关

    - Jetty是一个开源项目,由Eclipse基金会维护,其设计目标是轻量、高效、灵活,特别适合嵌入式环境。 - 它支持最新的Servlet和JSP标准,包括Servlet 4.0和JSP 2.3,同时提供了WebSocket、HTTP/2等现代网络协议的...

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    Maven是一个项目管理工具,它可以帮助开发者管理和构建Java项目,而Jetty则是一个轻量级的嵌入式Servlet容器,常用于快速开发、测试以及部署Web应用。本文将详细讨论如何将Jetty与Maven进行集成,并介绍关键的`maven...

    jetty各个版本下载

    例如,如果你的项目依赖于Servlet 3.0或更早版本,那么Jetty 7可能是一个合适的选择。但是,对于新项目或需要最新特性的项目,推荐使用更现代的版本,如Jetty 9或10,这些版本提供了更多的性能优化和安全更新。 3. ...

    jetty安装包

    JavaCV(Java Computer Vision)是一个强大的视觉处理库,它提供了对多个知名计算机视觉库的Java接口,如OpenCV、FFmpeg、PCL等。这款开源工具适用于那些希望在Java环境中进行图像处理、视频分析和机器学习任务的...

Global site tag (gtag.js) - Google Analytics