我的问题有两个关于 haproxy 的部分。
问题一:
我正在使用的服务处理上传大量 XML 文档,以及下载也相当大的结果。工作人员使用上传的 XML 文档生成响应,稍后可以从工作人员那里下载。这是一个粗略的设置:
--request--> www.domain.com --> worker(1 or 2).domain.com
www.domain.com 是一个静态内容服务器,也是 haproxy 所在的位置。所有请求最初都会来到这里。静态内容(html、图像等)应由 www.domain.com 上的 nginx 提供。
但是,具有特定 URL 的请求(例如 www.domain.com/[upload]/[id1] 或 www.domain.com/[download]/[id1])需要由工作人员自己处理。这里的另一个问题是转发需要基于 url 具有粘性。
例如:
假设一个 XML 文件被上传到 www.domain.com/upload/123。haproxy 将看到 url 包含上传,并将请求路由到 worker1.domain.com 或 worker2.domain.com。稍后,当向 www.domain.com/download/123 发出 GET 请求时,我需要 haproxy 将其路由到最初提供具有相同 id (123) 的上传请求的工作人员。基本上,我不能将给定 ID 的上传请求发送到 worker1,然后将相同 ID 的下载请求发送到 worker2。使用 haproxy 可以实现这样的事情吗?
问题2:
假设我正在将文件上传到 www.domain.com/upload,并且 haproxy 将其路由到 worker1.domain.com,那么整个文件会通过 haproxy 吗?也就是说,worker1.domain.com 会收到文件,而 haproxy 是否也会因为它在进行转发而受到相同的带宽影响?
非常感谢你!