当前位置: 首页 > 知识库问答 >
问题:

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

张德佑
2023-03-14

我想做一个简单的Node.js反向代理,将多个Node.js应用程序以及apache服务器托管在同一个端口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);

我之所以这么做,是因为我的apache服务器处理了很多域/子域,我不想每次添加新的子域时都必须修改这个路由表。

共有1个答案

云慈
2023-03-14

近一年来,我成功地使用了公认的答案来获得默认主机,但现在有了一种简单得多的方法,即node-http-proxy允许在主机表中使用RegEx。

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,否则将不处理RegEx。

 类似资料:
  • node-http-proxy 是一个全功能的 Nginx 的 HTTP 代理扩展,支持 WebSocket 。

  • 问题内容: 请告诉我,什么是部署nodejs应用程序nginx或node-http-proxy的首选方法。什么是最可靠的? 我需要的基本功能是 将所有请求代理到非80个帖子 负载均衡器 Websocket支持 问题答案: 这是一篇有关该主题的出色文章,网址为http://www.exratione.com/2012/07/proxying-websocket- traffic-for-nodejs

  • 问题内容: 我使用的是node-http-proxy,想要监视特定的响应标头,并在必要时重写它。这里有人建议这样做吗? 我的代理服务器位于几个不同的节点服务器以及一个Java WebApp的前面。Java应用程序正在设置Cookie,但是该Cookie的路径相对于Web应用程序的上下文。我需要cookie是安全的,并且有一个无需修改Java应用程序即可到达root的路径。 换句话说,将返回以下标头

  • 问题内容: 我正在一起运行Nodejs和Apache。 node-http-proxy正在侦听端口80,然后将请求转发到Apache(:9000)或Express(:8000)。 我在Apache上的虚拟主机如下所示: 我的问题是,在Express / Nodejs端具有虚拟主机功能的“正确”方法是什么?我希望不必像下面建议的那样将每个Nodejs应用程序放在其自己的端口上: https://gi

  • 设置http代理(也支持socks代理、https代理),配置方式: pattern proxy://ip:port # 加用户名密码 pattern proxy://username:password@ip:port 也可以用 http-proxy pattern参见匹配模式,更多模式请参考配置方式。 例子: 把所有请求代理到127.0.0.1:8888的代理服务器: * proxy://1

  • 在我的vps上试验Node.js时,我偶然发现了一个似乎无法解决的问题。 在Ubuntu13.04上,我有一个apache服务器与node.js一起运行。我的想法是使用Node-HTTP-Proxy创建一个反向代理。关于这一点的足够的信息可以找到,但我似乎有一个我找不到的错误。 然后我有我的hello.js文件: 最后是apache somesite.com配置: 我在public_html中有一