我将对此进行类似的设置(仅一个节点):
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
中定义一个ingress
。 docker
中是否有类似内容?
答案 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解决方案。