坚持不懈与traefik反向代理的集群连接

时间:2017-06-30 01:53:32

标签: cluster-computing reverse-proxy traefik

假设我有一组数据库副本,我希望在前端提供这些副本。这些数据库相互复制。如果可能的话,我可以让Traefik为同一个客户端IP提供相同的后端,这样即使数据库仍在复制最新的状态,UI也可以保持一致吗?

1 个答案:

答案 0 :(得分:1)

您似乎要求的是基于每个IP地址的粘性会话(也称为会话亲和性)。

Traefik支持基于cookie的粘性,这意味着如果启用了相关的Traefik选项,将在初始请求中分配cookie。然后,后续请求将到达相同的后端,除非它无法访问,此时将选择新的粘性后端。

可以像这样启用该选项:

[backends]
  [backends.backend1]
    [backends.backend1.loadbalancer]
      sticky = true

可以找到文档here(搜索"粘性会话")。

如果您正在使用Traefik运行其中一个动态提供程序(例如,Docker,Kubernetes,Marathon),则通常可以使用标签/标签/注释来设置每个前端。 TOML configuration file documentation包含所有详细信息。

如果您正在寻找真正的基于IP地址的粘性,其中IP地址空间被散列并且流量均匀地分布在所有后端:这还不可能,尽管有open feature request