根据URLpath创build代理

我需要根据来自浏览器的一些URL创build代理,因为我相当新的这个主题林不知道如何testing它:(我需要一些方法来testing它,看看这实际上是工作从这个博客使用下面的代码

http://blog.nodejitsu.com/node-http-proxy-1dot0/

var httpProxy = require('http-proxy') var proxy = httpProxy.createProxy(); var options = { 'foo.com': 'http://website.com:8001', 'bar.com': 'http://website2.com:8002' } require('http').createServer(function(req, res) { proxy.web(req, res, { target: options[req.headers.host] }); }).listen(8000); 

我需要的是当你把浏览器localhost:8000你将路由(代理)到新的服务器与不同的path,如选项中所述。

如果你想要一个用户inputfoo.com去http://website.com:8001你需要为例如Nginx的foo.com设置一个虚拟主机。

Nginx将为foo.com和bar.com托pipe虚拟主机,这将是Node.js应用程序的“代理传递”。

当用户访问foo.com时,它会让你的Nginx服务器将请求传递给Node应用程序,该应用程序将请求代理到你在选项中设置的相对URL。

如果你需要,我可以给你所需要的Nginxconfiguration。

Nginx虚拟主机configuration:

 server { listen 80; server_name foo.com bar.com; location / { proxy_pass http://127.0.0.1:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 

当然,你需要将foo.com和bar.com DNS指向Nginx / Node服务器。 Node应用程序是很好的。 你不需要更多。 启动Nginx和Node,你就完成了。