反向代理子域到同一台机器上的不同端口将引发404
我尝试过像红redbird
这样的手:
var proxy = require('redbird')({port: 80}); proxy.register("http://www.example.com", "http://36.154.99.115:3000"); proxy.register("http://abc.example.com", "http://36.154.99.115:3001"); proxy.register("http://xyz.example.com", "http://36.154.99.115:3002");
和redwire
如:
var RedWire = require('redwire'); proxy = new RedWire({http: { port: 80 }}); proxy.http("http://www.example.com", "http://36.154.99.115:3000"); proxy.http("http://abc.example.com", "http://36.154.99.115:3001"); proxy.http("http://xyz.example.com", "http://36.154.99.115:3002");
我可以打http://36.154.99.115:3000
和http://36.154.99.115:3003
成功加载各自的网页,但是当我尝试击中http://www.example.com
,我得到的是404 host not found
。
我在控制台上得到以下日志:
{"name":"redbird","hostname":"ip-172-31-23-160","pid":3239,"level":30,"msg":"Proxying www.example.com/ to www.example.com:3000/","time":"2017-02-12T08:07:57.540Z","v":0}
看起来像成功,但它实际上不起作用…
运行在3000,3001和3002上的服务器正在使用DietJS
注意:我尝试了
proxy.register("http://www.example.com", "http://www.facebook.com")
,它工作。
Diet.js似乎是这里的问题,请尝试将Web服务器移植到Express.js 。
或者,尝试使用Express.js创build示例应用程序或相对通用的应用程序,然后尝试redirect到该应用程序。 如果这样做(希望会),你知道该怎么做。