使用node-http-proxy的默认路由?

2024-03-11

我想做一个简单的 Node.js 反向代理来托管多个 Node.JS 应用程序以及同一端口 80 上的 apache 服务器。所以我找到了这个示例here http://nerdpress.org/2012/04/20/hosting-multiple-express-node-js-apps-on-port-80/

var http = require('http')
, httpProxy = require('http-proxy');

httpProxy.createServer({
    hostnameOnly: true,
    router: {
        'www.my-domain.com': '127.0.0.1:3001',
        'www.my-other-domain.de' : '127.0.0.1:3002'
    }
}).listen(80);

问题是我想让 app1.my-domain.com 指向 localhost:3001,app2.my-domain.com 指向 localhost:3002,而所有其他端口都指向端口 3000,例如我的 apache 服务器将会运行。我在文档中找不到有关如何拥有“默认”路线的任何内容。

有任何想法吗?

EDIT我想这样做是因为我的 apache 服务器处理了很多域/子域,并且我不想每次想要添加新子域时都必须修改此路由表。


近一年来,我已经成功地使用了接受的答案来拥有默认主机,但是现在有一种更简单的方法,node-http-proxy 允许在主机表中使用正则表达式。

var httpProxy = require('http-proxy');

var options = {
  // this list is processed from top to bottom, so '.*' will go to
  // '127.0.0.1:3000' if the Host header hasn't previously matched
  router : {
    'example.com': '127.0.0.1:3001',
    'sample.com': '127.0.0.1:3002',
    '^.*\.sample\.com': '127.0.0.1:3002',
    '.*': '127.0.0.1:3000'
  }
};

// bind to port 80 on the specified IP address
httpProxy.createServer(options).listen(80, '12.23.34.45');

您没有的要求hostnameOnly设置为 true,否则将不会处理正则表达式。

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

使用node-http-proxy的默认路由? 的相关文章

  • 如何在 Node.js 中打开 Windows-1255 编码文件?

    我有一个 Windows 1255 希伯来语 编码的文件 我希望能够在 Node js 中访问它 我尝试使用打开文件fs readFile 它给了我一个Buffer我无能为力 我尝试将编码设置为Windows 1255 但这没有被识别 我还
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • nvm代理设置配置文件

    在Linux下 我使用 http proxy and https proxy这适用于node and npm but nvm不使用它们 我应该在哪个配置文件中写入代理设置 uname a Linux Breizh Atao 3 19 0 3
  • 使用 Connect 和 node-http-proxy 的 HTTP 代理

    在开发过程中 我需要一个 HTTP 代理来访问外部 API 以绕过跨域安全限制 我在这里找到了一些示例代码 http nthloop com blog local dev with nodejs proxy http nthloop com
  • 运行 pm2 记录错误 SyntaxError: Unexpected token

    我想查看我的项目的日志 Steps 我克隆了一个套接字应用程序 然后我跑npm install pm2 g安装pm2 I run pm2 start 有用 它显示我的套接字应用程序的表格 但如果我跑pm2 logs查看日志 存在这样的错误
  • 获取 Promise 的值并分配给变量

    utility fetchInfo 返回一个 Promise 对象 我需要能够获取此 Promise 对象的值 并将其值分配给一个变量 以便稍后在我的代码中使用 此刻 我可以愉快地打印出result到控制台 但我需要能够将此值分配给myVa
  • 如何在 Mongoose 中执行查找查询?

    我在 mongodb 中有一组电子书数据 例如 id ObjectId 58b56fe19585b10cd42981d8 cover path D Ebooks uploads ebooks cover 1488285665748 img1
  • Mongoose 对 Promise 拒绝处理

    我有点与 NodeJS 中的 Promise 模式作斗争 我正在数据库中查找用户 然后使用用户引用保存新实体 但是当用户不在数据库中时 我应该返回拒绝 但我不确定如何正确执行 有没有办法做得更好 顺便说一句 对不起 咖啡脚本 User fi
  • 使用 React-navigation 的 React Native 中的模态窗口

    我在用react navigation在 React Native 中 我想在启动时确定用户是否已登录 如果他 她已经登录 我想打开一个模式窗口 全屏 如何最好地做到这一点 我在反应导航文档中找不到有条件显示屏幕的任何内容 看 你需要改变m
  • 如何使用expressjs发送多个文件?

    我希望能够发送许多文件 如果可能的话 发送整个目录 以便我可以在从 html 文件调用的其他 js 文件中访问它 const app require express const http require http Server app co
  • MongoDB 和 Mongoose 访问一个数据库,同时针对另一个数据库进行身份验证(NodeJS、Mongoose)

    我有几个数据库 不想为每个数据库创建单独的用户帐户 MongoDB 支持使用另一个数据库中定义的帐户来验证对数据库的访问的概念 但语法示例很难获得 当我终于弄清楚时 我正准备提出一个问题 如果它对其他人有帮助 就放在这里 这是 mongod
  • Express.js - 监听关闭

    我有一个使用 Express 的 Node js 应用程序 在该应用程序中 我有一个如下所示的块 const app require app const port process env PORT 8080 const server app
  • JavaScript - 类根据条件扩展

    事情是这样的 我有一个名为 A 的主课 我希望这个班级能够扩展 B 级 class A extends B 但事实上 我希望 B 类在特定条件下扩展 C D 或 E class B extends B1 or class B extends
  • 已安装全局 NPM 包但未找到命令

    我已经全局安装了两个 npm 包 下载 https www npmjs com package download and 谜虚拟盒 https www npmjs com package enigmavirtualbox通过命令行 npm
  • nodeJS exec 不适用于“cd”shell cmd

    var sys require sys exec require child process exec exec cd home ubuntu distro function err stdout stderr console log cd
  • NodeJS 在目录中递归地哈希文件

    我能够实现目录中的递归文件遍历 即探索目录中的所有子目录和文件 为此我使用了answer https stackoverflow com questions 5827612 node js fs readdir recursive dire
  • npm install 没有拉入 devDependency

    我有 npm v 1 2 32 当我跑步时 npm 安装 mongo migrate 它不安装 mongodb 这是一个 devDependency 我究竟做错了什么 虽然与这个问题没有直接关系 但有些人可能有兴趣知道如果环境变量NODE
  • 将 Node.js(用于实时通知)添加到现有 PHP 应用程序

    我有一个现有的 PHP 应用程序 我需要向其中添加实时通知 为了实现这一点 我安装了node js 打算添加socket io以实现所有实时功能 然而 尽管在过去的三个小时里研究并试图弄清楚如何将两者结合起来 但我发现自己并没有更接近于获得
  • npm install 的 --save 选项是什么?

    我看到一些教程 其中命令是 npm install save 什么是 save选项是什么意思 更新 npm 5 As of npm 5 0 0 http blog npmjs org post 161081169345 v500 安装的模块
  • 永远运行 Gulp 脚本?

    是否可以运行 Gulp 脚本forever https www npmjs com package forever 我有 Gulp 脚本想要作为守护进程运行 所以我可以启动 停止 列出它 好的 所以我通过将 gulp 二进制文件从 usr

随机推荐

  • 使用 Visual C++ 编译器在 Windows 上构建库时如何正确设置目标操作系统版本

    我正在使用 Visual C 2013 编译器 特别是在 Windows 平台上具有 C 11 功能 构建跨平台库 并使用 CMake NMake 生成器 作为构建系统 我使用的是 Windows 7 我的库使用一些仅在 Windows 8
  • 导出的 Google+ 照片,如何将 JSON 数据转换为 EXIF?

    最近使用 Google Takeout 从 Google 下载了 60GB 以上的照片和视频 这会产生大量文件 但有价值的元数据 包括照片的原始日期和位置 通常存储在每个相册的单独的metadata json 文件中 而不是存储在 EXIF
  • 如何使用 Odata Dynamics NAV 2017 Web 服务删除记录

    我开发了一个连接到 Microsoft Dynamics NAV 2017 OData Web 服务的 php 应用程序 我可以毫无问题地读取 GET 和创建 POST 但对于删除 我收到错误 405 微软说可以删除 https msdn
  • 无状态和有状态 Enterprise Java Bean

    我正在阅读 Java EE 6 教程 并试图了解无状态会话 bean 和有状态会话 bean 之间的区别 如果无状态会话 Bean 在方法调用之间不保留其状态 为什么我的程序会这样运行 package mybeans import java
  • 将 AWT 图像转换为 SVG 图像

    我正在使用以下代码摄取 AWT 图像 从 PDF 通过 PDFBox private java awt Graphics2D graphics public void drawImage java awt Image awtImage ja
  • 从 Android 联系人列表中获取电子邮件

    如何在Android联系人中以编程方式获取选定人员的电子邮件ID 应该支持所有版本 我尝试过 people 类 但主要电子邮件方法已被弃用 提前致谢 Aswan 嘿阿斯旺 我从来没有这样做过 但可以给你想法 此代码让您了解如何将电子邮件添加
  • 如何将带有重音符号、变音符号等的字母转换为 Perl 中对应的 ASCII 字母?

    我正在编写一个与 Perl 中的文档一起使用的程序 许多文档都具有诸如 etc 大写和小写 我想将它们替换为 ASCII 对应项a o u e etc 我将如何在 Perl 中做到这一点 我想到的解决方案之一是使用一个散列 其中键是元音变音
  • 如何解决打字稿中隐式任何类型到索引类型错误?

    如何解决这个错误 元素隐式具有 any 类型 因为 any 类型的表达式不能用于索引类型 这个错误背后的原因是什么 什么是索引类型 代码如下 const getPast action gt const presentToPast appro
  • 在 php 中解压参数数组

    Python 提供了 运算符来解压元组列表并将它们作为参数提供给函数 如下所示 args 3 6 range args call with arguments unpacked from a list 这相当于 range 3 6 有谁知道
  • 带有圆形图像的 QLabel

    我想在 PyQt5 PySide2 应用程序中显示圆形图像 下面是我尝试过的代码 self statusWidget QLabel img QImage image jpg scaled 49 49 Qt IgnoreAspectRatio
  • theano中卷积神经网络的无监督预训练

    我想设计一个深度网络 其顶部有一个 或多个 卷积层 CNN 和一个或多个完全连接的隐藏层 对于具有完全连接层的深度网络 theano 中有一些方法可以进行无监督预训练 例如 使用去噪自动编码器 http www deeplearning n
  • 如何使用不同的pathdef同时运行两个MATLAB实例?

    我正在开发自己的脑成像工具箱 在 MATLAB SPM8 下运行 同时我有一个git clone我自己的工具箱代码目录 本地 git 存储库 的版本用于运行分析 此设置是根据 Kevin Reid 的回答创建的如何使用 git 同时处理多个
  • 尝试从 Windows 服务读取 IIS 站点的 web.config 文件

    我正在尝试寻找一个特别的web config安装在本地 IIS 上的网站的文件 我通过 Windows 服务进行此搜索 我执行以下操作 using ServerManager serverManager new ServerManager
  • Android 无法正确连接 MySQL 数据库

    我正在尝试了解从 MySQL 服务器发送和接收数据的 Android 应用程序的基础知识 我的实现与本学习示例无关 这是到目前为止的代码 package com davekelley polling import java io Buffe
  • 在 DQL 中加入并计数

    我有一个 MySQL 命令 但在 DQL 中找不到等效命令 我正在尝试获取评论最多的帖子列表 这是 MySQL 命令 SELECT posts id COUNT comments id AS num FROM posts LEFT JOIN
  • HP 强化 XML 外部实体注入

    Hp fortify 通过以下代码向我展示了 XML 外部实体注入 StringBuilder sb new StringBuilder StringWriter stringWriter new StringWriter sb xmlSe
  • 在android上显示圆形进度条(实心圆圈)

    如何在android上显示填充的圆形进度条 进度条应该像圆圈一样填充 而不是像环一样 并且应该具有可自定义的功能 例如动画计时动画插值器等 该项目有助于在 android 5 棒棒糖 及更高版本上显示一个简单的填充圆形进度条 它是高度可定制
  • 限制Socket io连接数

    是否可以限制nodejs中的套接字io连接数 我知道可以通过更改服务器 TCP 设置来配置限制 但我正在寻找一种在 nodejs 中执行此操作的方法 你可以很容易地实现它 var connectionsLimit 1 io on conne
  • Django/python 和 Apache Solr:pysolr 还是 solrpy?

    这个论坛是全新的 这是我的第一篇文章 在工作中 我们正在启动一个使用 Apache Solr 的项目 我负责前端系统 基于 Django 我们的 solr 数据库与任何其他数据库引擎或任何模型类都不相关 因此 Haystack 对我们不利
  • 使用node-http-proxy的默认路由?

    我想做一个简单的 Node js 反向代理来托管多个 Node JS 应用程序以及同一端口 80 上的 apache 服务器 所以我找到了这个示例here http nerdpress org 2012 04 20 hosting mult