【问题标题】:How to hide a node.js server using http-proxy如何使用 http-proxy 隐藏 node.js 服务器
【发布时间】:2014-03-01 09:39:37
【问题描述】:

我正在使用以下代码在 node.js 实现反向代理。它工作正常,但问题是当我尝试访问服务器 127.0.0.1:9008/" 它很容易获得。我希望它只能通过代理服务器访问。请帮忙..

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

//
// Create a proxy server with latency
//
var proxy = httpProxy.createProxyServer();

//
// Create your server that make an operation that take a while
// and then proxy de request
//
http.createServer(function (req, res) {
// This simulate an operation that take 500ms in execute
setTimeout(function () {
 proxy.web(req, res, {
  target: 'http://127.0.0.1:9008'
});
 }, 500);
}).listen(8008);

//
// Create your target server
//
 http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify (req.headers,      true, 2));
 res.end();
 }).listen(9008);

【问题讨论】:

    标签: node.js load-balancing reverse-proxy http-proxy


    【解决方案1】:

    }).listen(9008, "127.0.0.1");

    这将使您的目标服务器侦听环回 IP 地址,其他机器无法访问该地址。这是代理背后的服务的标准做法。

    当您通过将最后一行更改为我上面的内容来绑定到 127.0.0.1 时,您就实现了目标。超出此范围是不可能的。您将始终能够在其端口上连接到目标服务器,但只有在从同一台机器连接时。这就是环回的意思。如果您尝试进一步限制,即使代理本身也无法连接,这是系统正常运行所必需的。

    如果您要编写 Web 服务器和代理,请阅读一些基本的网络教程并了解不可路由的环回 IP 地址。那么这将更有意义,但没有,因为你评论了我无意解释为什么这在上面的段落之外起作用。

    【讨论】:

    • Thnax peter..我明白了。
    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2022-01-04
    • 2012-10-11
    • 1970-01-01
    • 2014-09-24
    • 2013-12-28
    相关资源
    最近更新 更多