我正在尝试使用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中的内容允许我做常规代理?
答案 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,您仍可能会获得重定向,具体取决于您的位置。
为什么不尝试一个不想变得聪明的不同网站呢?