假设我有一个极简的 Python Web 服务器,其中运行着多个实例,每个实例都指定了不同的端口作为命令行参数。
我希望对我的服务器的请求像这样重定向,使用 Host 标头:
name1.mydomain.com -> localhost:8000
name2.mydomain.com -> localhost:8001
name3.mydomain.com -> localhost:8002
最好使用像 Lighttpd 这样的服务器并进行一些虚拟主机配置来完成这项工作吗 - 这可能吗?
我并不想使用像 Apache 这样重量级的东西。
谢谢!
答案1
和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 $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;
}
}