想用nginx作为docker swarm集群的路由容器以取代docker-flow-proxy,配置nginx时每个主机名配置一个upsream,由于有很多个主机名,如果每个主机名都配置一个proxy_pass会很麻烦,有什么办法可以实现根据请求的主机名自动对应的upstream?
用 nginx 内置变量 $http_host
就可以了
server {
listen 80;
location / {
proxy_pass http://$http_host;
}
}
补充:还要加上 resolver ,对于 docker swarm 中的容器,resolver 的地址是 127.0.0.11
server {
listen 80;
location / {
resolver 127.0.0.11;
proxy_pass http://$host;
}
}