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

一个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

时间: 2024-10-06 15:44:25

一个jetty部署多个项目配置之方法的相关文章

windows10上使用一个tomcat部署2个项目

前言:目前想在本机部署2个项目,网上查了之后,写下本篇随笔 1.准备工作 2.操作方法 3.运行2个项目 1.准备工作 2个war包(一个jprss.war和一个jenkins.war) 1个tomcat环境 2.操作方法 第一步:复制tomcat中的webapps文件夹,命名为webapps1和webapps2 第二步:复制tomcat\conf\Catalina文件夹,命名为Catalina1和Catalina2 第三步:修改tomcat中的server.xml文件: 将从<Service

Eclipse中进行Gradle+Jetty部署的web项目的断点调试(原创)

1.自行配置好build.gradle文件和按照gradle的web项目目录结构规范建立java.resourece和webapp文件夹 可在build.gradle文件中自由设定“http端口” 1 jettyRun { 2 reload = "automatic" 3 scanIntervalSeconds = 1 4 httpPort = 1234 5 stopPort = 4321 6 stopKey = 'stop' 7 } 2.接下来,在利用gradle部署web项目完毕后

Eclipse中进行Gradle+Jetty部署的web项目的断点调试

1.自行配置好build.gradle文件和按照gradle的web项目目录结构规范建立java.resourece和webapp文件夹 可在build.gradle文件中自由设定“http端口” 1 jettyRun { 2 reload = "automatic" 3 scanIntervalSeconds = 1 4 httpPort = 8080 5 stopPort = 8088 6 stopKey = ‘stop‘ 7 } 2.接下来,在利用gradle部署web项目完毕后

一个tomcat部署两个项目引发的血案

          两个产品测试上线,部署在一个tomcat中,一开始部署成功.但是后续更新的时候,发现其中一个可以正常访问,另外一个无法访问.当时那个着急啊.         后来细心发现,服务启动的时候,后台log有一个错误信息. java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [/home/test/app1/] ins

记Flask的一种设置项目配置的方法!

在做项目时,碰到的一种设置配置的方式,主要是因为公司将所有的配置写成了一个公司专有的配置库(各种资源地址,账号等),上线后的项目需要什么配置是从这个配置库的读取.但在开发时不能使用,所以在开发时需要自定义配置,且在上线时能够轻松的移除这些开发环境的配置. 在我们封装/自定义的文件中实现类定义:(如在文件 myjenkins.py) class FlaskJenkins(object): def __init__(self, app=None): self.app = app self._j =

理解 IntelliJ IDEA 的项目配置和Web部署

1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse,为了更深入理解和使用,就找来各种资料再研究一下,这里整理后来个输出. 1.1 Project Project name:定义项目的名称: Project SDK:设置该项目使用的JDK,也可以在此处新添加其他版本的JDK: Project language level:这个和JDK的类似,区别在于

制作自己的网站第二步***在Linux上装上需要的软件以及部署项目配置**

在购买自己的服务器后,如果想要把项目跑起来,就得安装一些必要的软件. 这里只说一些最基础最基本最不可或缺的几个.其他的可以根据自己的需要 安装使用. 首先,那就是配置jdk了,我们可以通过一些工具把下载好的Linux版的jdk包 拉到Linux的目录里面.当然这个是最方便的.不过也可以直接在线下载oracle jdk 如果此云服务器是第一次安装软件,那么有可能会出现不能下载或者下载出错的情 况,若出现这种情况,可以先更新下云服务器资源库,使用命令:apt-get update 就可以了.更新过后

转:理解 IntelliJ IDEA 的项目配置和Web部署

1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse,为了更深入理解和使用,就找来各种资料再研究一下,这里整理后来个输出. 1.1 Project Project name:定义项目的名称: Project SDK:设置该项目使用的JDK,也可以在此处新添加其他版本的JDK: Project language level:这个和JDK的类似,区别在于

使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserver:这是一款适合开发阶段使用的服务器,不能对大量请求进行同时处理,不适合运行在真实的生产环境中,在实际生产环境中使用WSGI作为接口,连接web和python代码(也就是django项目): 2.WSGI:Web服务器网关接口,英文为Python Web Server Gateway Interface,缩写为WSGI,是