使用子域对不同端口上的服务器进行代理HTTP请求

假设我有一个极简主义的Python Web服务器,运行几个实例,每个实例都有不同的端口指定为命令行参数。

我想请求我的服务器被redirect像这样,使用主机头:

name1.mydomain.com -> localhost:8000 name2.mydomain.com -> localhost:8001 name3.mydomain.com -> localhost:8002 

用Lighttpd这样的服务器和做一些虚拟主机configuration是否可以做到这一点?

我不想使用像Apache这样重的东西。

谢谢!

有了nginx,你可以使用如下的东西:

 server { server_name name1.domain.com; location / { proxy_pass http://localhost:8000; } } server { server_name name2.domain.com; location / { proxy_pass http://localhost:8001; } } server { server_name name3.domain.com; location / { proxy_pass http://localhost:8002; } } 

顺便说一下,还有另一种方法使用map指令来达到同样的效果:

 map $http_host $port { hostnames; default 8000; name1.example.com 8000; name2.example.com 8001; name3.example.com 8002; } server { listen 80; server_name ~^name\d.example.com; location / { proxy_pass http://127.0.0.1:$port; } }