使用相同端口(80)运行多个 java jetty 实例

2023-12-25

例如:

我有一个主要临时域

www.product.com

对于每个客户端,我需要将单独的子域映射到具有相同端口(80)但具有不同实例名称(不同.wars文件)的同一服务器

www.client1.product.com
www.client2.product.com
www.clientn.product.com

(如果我错了,请纠正我)据我所知,如果我启动jetty实例,每个实例都会从单独的端口号开始

client1 war will start at port 3001
client2 war  will start at port 3002
client3 war will start at port 3003

我的问题是如何将端口 80 的所有实例映射到适当的相同子域

如果我访问

www.client4.product.com,我需要让 jetty 应用程序在端口 3004 中运行

Update:

为了更好地理解我的架构,如果在端口 3002 上运行的 client2 jetty 实例由于运行时异常或内存泄漏或手动重启而进入关闭状态,则所有其他 jetty 实例独立运行(类似于 google appengine 使用 jetty 背后的架构)


为此,请勿运行多个 Jetty 实例。使用多个 VirtualHost 运行一个实例。为此,您可以像这样配置 jetty:

  <Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="war"><SystemProperty name="jetty.home"/>/webapps/client1.war</Set>
    <Set name="contextPath">/</Set>
    <Set name="virtualHosts">
      <Array type="java.lang.String">
        <Item>www.client1.product.com</Item>      
      </Array>
    </Set>
</Configure>
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="war"><SystemProperty name="jetty.home"/>/webapps/client2.war</Set>
  <Set name="contextPath">/</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>www.client2.product.com</Item>      
    </Array>
  </Set>
</Configure>

Check 这一页 http://wiki.eclipse.org/Jetty/Howto/Configure_Virtual_Hosts#Configuring_Different_Webapps_for_Different_Virtual_Hosts.2C_But_at_the_Same_Context_Path有关如何配置此功能的更多信息。

或者,如果您确实想要拥有多个 Jetty 实例,您可以在它前面使用另一个服务器(例如充当反向代理的 Apache)。然后可以通过编辑 httpd.conf 来使用虚拟主机设置 Apache:

<VirtualHost *:80>
     ServerName www.client1.product.com
     ProxyRequests off
     ProxyPass / http://someInternalHost:3001/
     ProxyPassReverse / http://someInternalHost:3001/
</VirtualHost>

<VirtualHost *:80>
     ServerName www.client2.product.com
     ProxyRequests off
     ProxyPass / http://someInternalHost:3001/
     ProxyPassReverse / http://someInternalHost:3001/
</VirtualHost>

您可以看到阿帕奇文档 http://httpd.apache.org/docs/2.2/vhosts/name-based.html了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用相同端口(80)运行多个 java jetty 实例 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Mac 上的 Apache 虚拟主机的通配符域

    我目前正在运行多个域以进行本地开发 http wordpress dev http phpmyadmin dev http projectx dev http projecty dev 这些项目大多数位于用户的 Sites 目录中 但有些项
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 万智牌数据库设计

    我想为我拥有的 MTG 卡创建一个数据库 设计会是什么样的 我想存储每张卡的以下信息 1 Name of card 2 Set the card belongs to 3 Condition of card 4 Price it sold
  • 位图插值c#

    网格尺寸 160 160 行数 列数 16 16 我为此创建了一个位图 网格的每个单元格都填充有不同的颜色 我需要执行颜色插值 我猜您想要执行以下操作 拍摄 16x16 像素图像并将其插值为 160x160 像素图像 以下是三个示例输出 您
  • 实现WebView数据库配额委托

    我如何实现这个方法 见下文 我是 Objective C 的新手 我只是不太了解它 From http lists apple com archives Webkitsdk dev 2008 Apr msg00027 html http l
  • 确定将在 php 中发送的 http 状态

    我正在尝试为管理应用程序标头的类编写一个测试用例 它发送的标头中有 http 状态标头 我正在使用 headers list 来查看将发送哪些标头 如果我现在发送标头的话 headers list 的问题是它不包含 http 状态标头 尽管
  • 为什么 lapply() 不保留我的 data.table 键?

    我的列表中有一堆 data tables 我要申请unique 到我的列表中的每个 data table 但这样做会破坏我的所有 data table 键 这是一个例子 A lt data table a rep c a b each 3
  • 这两组陈述之间的确切区别是什么?

    Set
  • 如何重新索引 pandas 数据透视表

    我创建了一个数据透视表 该表根据其中一列和时间索引的月份进行分组 这是数据透视表 AWRT AWFT AWDT Time type April All 38 190119 65 789103 27 598984 DHW 19 676627
  • 隐式、显式和流利等待之间的区别

    两者之间的确切区别是什么implicitwait explicitwait and fluentwait 您能举例说明吗 我已经发布关于此的博客文章 https medium com austenjt difference betwen i
  • 为什么 (x += x += 1) 在 C 和 Javascript 中的计算结果不同?

    如果变量的值x最初为 0 表达式x x 1在 C 中将计算为 2 在 Javascript 中将计算为 1 C 的语义对我来说似乎很明显 x x 1被解释为x x 1 反过来 这相当于 x 1 x x where x is 1 at thi
  • 在 Angular 6 工作区中安装 NPM 包

    我刚刚开始学习 Angular 6 和 CLI 并创建了一个项目 如下所示 ng new my demo cd my demo ng g library foo prefix my 我的库中没有我想要添加的内容ngx bootstrap因为
  • Scrapy Spider整理抓取过程,不刮任何东西

    我有一只蜘蛛 它会在亚马逊上抓取信息 蜘蛛读取一个 txt 文件 在其中写入它必须搜索的产品 然后进入该产品的亚马逊页面 例如 我使用 keywords laptop 来更改要搜索的产品等 我遇到的问题是蜘蛛无法工作 这很奇怪 因为一周前它
  • 软件开发中的测试人员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我的公司 我们开发一种软 件产品 到目前为止 我们还没有任何测试人员 所以基本上开发人员就是测试人员 当然还有客户和用户 不好 我们的团队现在
  • lsnrctl start rane 当我触发此命令时出现此错误

    oracle myserver lsnrctl start rane LSNRCTL for Linux Version 11 2 0 1 0 Production on 27 SEP 2016 23 04 58 Copyright c 1
  • 错误:无法解析“C:\projects\Project-CMS\Project.Web\src”中的“./app/app.module.ngfactory”

    当我为 Angular 5 应用程序创建构建时 出现以下错误 当我创建构建时它工作正常 ng build 当我创建 buildproductttion 时它显示错误 ng build prod 我没有在应用程序中的任何地方使用 ngfact
  • 关闭模态视图控制器时“[CALayer release]:消息发送到已释放的实例”

    这几天我一直在纠结这个问题 找不到解决办法 所以请教一下 我有两个 UIViewController NewPostUIViewController 和 SettingsUIViewController 在第二个中我有一个字段 id
  • 如何访问数据网格模板列文本框文本 WPF C#

    我需要访问 a 中的文本DataGrid的模板列来自代码后面 但我不知道如何 我需要将文本更改为我在上传递给它的任何字符串SelectionChanged事件 有人可以告诉我如何实现这一目标吗 我发现了一个类似的问题here https s
  • 如果存在则更新,否则插入一个查询中[重复]

    这个问题在这里已经有答案了 我有这样的简单表 ID int KEY varchar VALUE int 1 asdf 100 2 fdsa 321 3 ecda 211 我想更新行KEY some
  • 从 SPSS 中的所有变量名称中去除后缀

    我有一个数据集 其中每个变量名称都有后缀 1 这样做是为了指示第一次采访时间点 我想从所有变量中删除这个后缀 但变量有数百个 所以我正在寻找一种方法来完成此操作 而无需数百次使用 RENAME 语句 我找到的最接近相关信息来自下面的链接 用
  • MinGW 中的静态链接库

    假设我有三个 C 源文件 前两个是 LIB lib a 第三个是使用它们的应用程序 第一个是 re c int re int i return i 第二个是 test c int re int Depends on re c int tes
  • 使用相同端口(80)运行多个 java jetty 实例

    例如 我有一个主要临时域 www product com 对于每个客户端 我需要将单独的子域映射到具有相同端口 80 但具有不同实例名称 不同 wars文件 的同一服务器 www client1 product com www client