原文地址: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提供的配置文件的情况下).
对于不同的方式来配置虚拟主机,包括文件,提供详细的配置说明的链接的说明,请参阅如何配置 |
实例一:配置一个虚拟主机 <!-- 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 |
相关推荐
每个Web应用都有其独特的上下文路径,使得在同一服务器上可以部署多个互不干扰的Web应用。 3. **上下文路径(Context Path)**:上下文路径是URL中与Web应用关联的部分,例如`/example`。它是Web应用的唯一标识符,...
在Maven中,一个父项目(Parent POM)可以包含多个子模块(Child Modules),每个子模块都有自己的独立POM文件,这些POM共同构成了项目的构建体系。 1. **创建多模块项目** - 首先,创建一个父POM(parent-pom.xml...
- 分析和理解这个项目,可以帮助开发者掌握如何配置Jetty以满足特定需求,例如设置虚拟主机、部署多个Web应用等。 - 通过修改项目配置,可以学习到如何优化Jetty的性能,比如调整线程池大小、开启GZIP压缩等。 ...
在Maven项目结构中,通常会有多个模块,每个模块代表项目的一个部分。如果`zzq-main`是其中的一个模块,那么它可能有自己的`pom.xml`文件,定义了该模块的依赖和构建规则。在上述配置中,`contextPath`设置为`/zzq-...
Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,它允许开发者在本地环境快速部署和测试Web应用。本文将详细介绍如何在Eclipse中配置Jetty,并使用它来调试Web项目。 首先,你需要确保已经安装了Eclipse ...
它们都支持虚拟目录配置,使得我们可以将多个Web应用程序部署在同一服务器上,而无需更改全局服务器配置。虚拟目录允许我们为每个应用设置一个独立的URL路径,提高管理和部署的灵活性。下面我们将详细探讨Tomcat和...
总的来说,构建一个基于Spring MVC、内嵌Jetty和Maven的微服务涉及多个层次的技术整合,包括Web服务的搭建、服务间的通信以及项目的构建和管理。这样的配置为开发人员提供了灵活性,同时也确保了开发流程的高效性...
本教程将详细介绍如何通过“一键部署”实现对一个基于Java的项目(DEMO)进行配置,结合Jetty服务器、Subversion(SVN)版本控制系统以及Ant构建工具的整合使用。 首先,让我们了解这些组件的作用: 1. **DEMO**:...
在嵌入式Jetty环境下运行Struts2 Annotation项目是一个常见的任务,特别是在开发和测试阶段,因为这种方式能够快速启动服务,而无需依赖大型服务器容器。本文将深入探讨如何配置和执行这个过程,以及涉及的关键技术...
2. `<Set name="handler">`:这部分配置了服务器处理请求的处理器链,通常会包含一个或多个处理器,如`<Ref id="Contexts"/>`用于处理Web应用上下文,`<Ref id="DefaultHandler"/>`用于处理默认的HTTP响应。...
标题"main方法启动jetty"指的就是通过编写一个包含main方法的Java类,调用Jetty的相关API来启动服务器。这种方式使得开发者能够自定义启动参数,便于调试和自动化部署。 **启动Jetty的基本步骤:** 1. **导入依赖*...
3. **Jetty服务器**:Jetty是一个轻量级、高性能的Servlet容器,常用于开发和测试环境。它可以直接运行未打包的Web应用,适合快速迭代和调试。 4. **Jetty-Maven插件配置**:学习如何在`pom.xml`文件中配置Jetty...
在Web应用目录下,通常会有一个或多个JSP页面,如index.jsp。JSP(Java Server Pages)是一种动态网页技术,允许开发者在HTML中嵌入Java代码。在给定的例子中,index.jsp是一个简单的HTML页面,定义了字符编码并输出...
应网友要求,重新整理原《eclipse + maven多模块项目框架 + jetty热部署的实例源码》,增加了各配置的详细注释。 并且基于Spring MVC提供了一个完整功能:实现了生成验证码图片,以及验证输入是否匹配的两个接口,...
- Jetty的JNDI配置使得资源管理更加灵活,便于在多个Web组件间共享。 - 通过`jetty.xml`、`realm.properties`和`webdefault.xml`,我们可以精细控制服务器的行为和安全设置。 - 了解并熟练掌握这些配置,将有助于...
配置Jetty涉及到多个方面,包括但不限于连接器配置、上下文路径设置、安全设置等。Jetty的配置文件主要位于`etc`目录下,采用XML格式。 ##### 3.2 上下文路径设置 每个Web应用都有一个唯一的上下文路径,用于访问...
- Jetty是一个开源项目,由Eclipse基金会维护,其设计目标是轻量、高效、灵活,特别适合嵌入式环境。 - 它支持最新的Servlet和JSP标准,包括Servlet 4.0和JSP 2.3,同时提供了WebSocket、HTTP/2等现代网络协议的...
Maven是一个项目管理工具,它可以帮助开发者管理和构建Java项目,而Jetty则是一个轻量级的嵌入式Servlet容器,常用于快速开发、测试以及部署Web应用。本文将详细讨论如何将Jetty与Maven进行集成,并介绍关键的`maven...
例如,如果你的项目依赖于Servlet 3.0或更早版本,那么Jetty 7可能是一个合适的选择。但是,对于新项目或需要最新特性的项目,推荐使用更现代的版本,如Jetty 9或10,这些版本提供了更多的性能优化和安全更新。 3. ...
JavaCV(Java Computer Vision)是一个强大的视觉处理库,它提供了对多个知名计算机视觉库的Java接口,如OpenCV、FFmpeg、PCL等。这款开源工具适用于那些希望在Java环境中进行图像处理、视频分析和机器学习任务的...