我相信我错过了代理设置的一个基本部分,但当使用以下:
var http = require('http'),
httpProxy = require('http-proxy');
httpProxy.createProxyServer({target:'http://www.asos.com'}).listen(8000);
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9000);
提交人:
Invalid URL
The requested URL "[no URL]", is invalid.
Reference #9.56731002.1508760714.1524ffde
现在我很确定这是一个url输入到代理?
所有我想做的是设置一个代理到一个网站,然后插入一些自定义的js文件。但这是第一步。
1条答案
按热度按时间hsvhsicv1#
与你在评论中所说的相反,你尝试访问
localhost:8000
是正确的。这是你创建的代理的正确端口。您需要添加以下内容:
全文如下:
如果没有这个设置,远程服务器将收到一个带有
Host: localhost:8000
头的请求,而这个特定的服务器似乎关心Host
头(也许它使用了虚拟主机)。结果它不知道该怎么处理它,并返回该错误。代理成功地从远程服务器代理了错误消息。您显然是从
http-proxy
文档中复制了代码,但您似乎误解了它。请注意,在原始示例中,代理target
是localhost:9000
,这个例子的目的是让你访问localhost:8000
,然后它把请求代理到localhost:9000
,你所要做的是完全不同的。您的代码创建两个完全独立的服务器,一个在端口8000上,另一个在端口9000上。与其使用
listen
方法,不如查看web
方法的示例。