无需重定向node-http-proxy即可进行代理

时间:2012-05-07 22:58:26

标签: node.js proxy node-http-proxy

我正在尝试使用node-http-proxy将我的网站代理到另一个网站,例如google.com 每当我尝试他们在github上的文档中提供的一些示例而不是我的网站显示google.com的内容时,它只是重定向到google.com这是我正在使用的代码

var proxy = require("http-proxy");
var options = {
   router: {
      "myserver.com" : "google.com"
   }
}
var proxyServer = proxy.createServer(options);
proxyServer.listen(80);

我这样做是错误的,只是反向代理?如果是node-http-proxy中的内容允许我做常规代理?

2 个答案:

答案 0 :(得分:3)

由于google.com会返回301重定向,因此会将浏览器发送到其他位置。在这种情况下,您只需使用完整网址(www.google.com),它就不会将301重定向发送回www.google.com。重要的是,由于google.com正在发回301重定向,您必须使用重定向的网站不重定向客户端。例如,如果您运行curl google.com,则会看到301重定向,如果您只是运行curl www.google.com,则重定向不存在。

答案 1 :(得分:1)

尝试CodeRarity的回答给了我:

> curl www.google.com    
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">  
<TITLE>302 Moved</TITLE></HEAD><BODY>                                           
<H1>302 Moved</H1>                                                              
The document has moved                                                          
<A HREF="http://www.google.co.uk/">here</A>.                                    
</BODY></HTML> 
>

正如您所看到的,即使使用www.google.com,您仍可能会获得重定向,具体取决于您的位置。

为什么不尝试一个不想变得聪明的不同网站呢?