1

我正在尝试使用 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 中的什么允许我做常规代理?

4

2 回答 2

3

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

于 2012-05-07T23:38:54.540 回答
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,您仍可能会收到重定向,具体取决于您所在的位置。

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

于 2012-05-08T08:40:33.610 回答