在一个端口上使用单个应用程序的节点应用程序使用代理服务器(如node-http-proxy)有什么意义?

use*_*569 6 javascript proxy node.js nodejitsu node-http-proxy

我正在探索使用node-http-proxy代理服务器,以便我可以让端口80上的代理服务器向端口8000上的应用服务器转发请求.但是,我有点困惑为什么这是个好主意这个设置究竟是什么能够防止安全问题.

note-http-proxy文档讨论了很多关于使用它作为向具有多个端口或IP地址的应用程序转发请求的方法.这显然非常有用,特别是对于基本的循环负载均衡器策略.但是,我们在一个端口上只有一个应用程序,因此我们无需执行此操作.

如果我们应该使用这个代理服务器有一个重要的安全原因,那么我很想知道它可以防范哪种类型的攻击.另外,我们正在使用socket.io,所以如果代理有一些东西可以帮助websocket服务器扩展,我也想了解它.我们无法确定如何运行我们的应用程序sudo(因为1024以下的所有端口都需要root访问权限),所以如果此时没有充分的理由使用代理服务器,我们只是要废弃.如果有人知道如何在没有root访问权限的端口80上使用代理服务器运行此应用程序,那么这也非常有用.谢谢!

Jul*_*ght 3

运行反向代理的原因是:

  • 您打开的 IP 端口有限,并且需要运行许多节点服务,每个服务都需要它自己的端口
  • 您的后端服务不支持 HTTPS,但您需要它(例如 Derby)
  • 向请求添加一些后端无法轻松完成的其他功能,例如添加基本身份验证或某种形式的常见日志记录/审核
  • 对多个后端服务中常见的传出响应强制执行添加或更改
  • 提供负载均衡服务

除非您的需求非常简单,否则最好使用专用代理(例如HAproxy),因为 node-http-proxy 相当简单。