在Docker群设置中路由传入流量

时间:2019-01-26 13:34:04

标签: docker kubernetes docker-compose docker-swarm

我将对此进行类似的设置(仅一个节点):

          internet
             |
      [ nginx proxy]
             |
          [ node ]
  --|-----|--  --|-----|--
   [ Service A]-[ Service B]

我想实现某种路由,例如像这样:

  
      
  • https://server.com/nginx将流量路由到nginx,后者将其转发到集群。
  •   
  • https://server.com/nginx/a将流量路由到Service A
  •   
  • https://server.com/nginx/b将流量路由到Service B
  •   

docker(集群内部)中是否存在可以根据/path/路由流量的解决方案?

我以前使用过kubernetes,在那里我可以选择在path中定义一个ingressdocker中是否有类似内容?

1 个答案:

答案 0 :(得分:0)

我没有使用过ingress,但我相信它只是包装了NGINX。据我所知,docker没有等效功能,但是您当然可以制作自己的NGINX服务,它将为您执行此任务。一个简单的例子可能像这样:

server {
    listen      80;
    server_name example.org www.example.org;
    root        /data/www;

    location / {
        index   index.html index.php;
    }

    location ~* \.(gif|jpg|png)$ {
        expires 30d;
    }

    location ~ \.php$ {
        fastcgi_pass  php_container_name:9000; //NOTE THE CONTAINER *NAME* NOT IP
        fastcgi_param SCRIPT_FILENAME
                      $document_root$fastcgi_script_name;
        include       fastcgi_params;
    }
}

(摘自http://nginx.org/en/docs/http/request_processing.html

然后您将启动一个使用nginx和您的配置构建的容器。请注意,您将按名称引用其他服务。

编辑:这篇文章-Kubernetes: Ingress vs Load Balancer可能会解释更多信息,并且可能会帮助您翻译当前的kubernetes解决方案。

相关问题