我正在探索使用 node-http-proxy代理服务器,这样我就可以让我们的代理服务器在端口 80 上将请求转发到我们在端口 8000 上的应用程序服务器。但是,我有点困惑为什么这是一个好主意,以及这个设置究竟能防止什么安全-明智的。
note-http-proxy 文档讨论了很多有关使用它作为将请求转发到具有多个端口或 IP 地址的应用程序的方法。这显然非常有用,特别是对于基本的循环负载均衡器策略。但是,我们在一个端口上只有一个应用程序,因此我们没有必要这样做。
如果出于重要的安全原因我们应该使用此代理服务器,那么我很想知道它可以防止哪些类型的攻击。此外,我们正在使用 socket.io,因此如果代理可以帮助 websocket 服务器扩展,我也想了解这一点。我们无法弄清楚如何在没有 sudo
的情况下运行我们的应用程序(因为 1024 以下的所有端口都需要 root 访问权限),所以如果此时真的没有充分的理由使用代理服务器,我们只是要报废。如果有人知道如何在没有 root 访问权限的情况下使用端口 80 上的代理服务器运行此应用程序,那也会非常有帮助。谢谢!
最佳答案
运行反向代理的原因是:
- 您打开的 IP 端口有限,需要运行许多 Node 服务,每个服务都需要自己的端口
- 您的后端服务不支持 HTTPS 但您需要它(例如 Derby)
- 向请求添加一些后端无法轻松完成的其他功能,例如添加基本身份验证或某种形式的常见日志记录/审计
- 强制添加或更改跨多个后端服务的传出响应
- 提供负载均衡服务
除非您的需求非常简单,否则最好使用专用代理,例如HAproxy。因为 node-http-proxy 相当简单。
关于javascript - 对于一个端口上只有一个应用程序的 Node 应用程序,使用代理服务器(例如 node-http-proxy)有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10677135/