我有一个performance不佳的networking应用程序,将大规模扩大应付互联网的重量。
Haproxy将被用来将无状态的web请求传播给许多服务器。 但是,stream量还是有限制的,我想优先考虑真正的用户。
haproxy是否可以configuration为将特定引荐来源url的stream量发送到特定的框?
例如,如果在新闻文章中提到部署的网关,我可以将来自该文章的stream量redirect到一个快速静态的HTML网站,上面写着“谢谢你的兴趣,这是一些信息”。
如果这是可能的,也许有人可以从configuration文件共享一个相关的片段。
是的,它可以。 从文档中 ,
hdr_dir
hdr_dir(标题)
当其中一个标头包含一个被隔离或用斜线分隔的string时返回true。 这用于执行文件名或目录名称匹配,并可能与Referer一起使用。 有关标题匹配的更多信息,请参阅“hdr”。
因此,您可以检查hdr_dir(referrer)是否匹配特定path,如果是,请设置一个标志,然后根据该标志将stream量发送到各个目标。
acl slashdot hdr_dir(referrer) -i /some/path use_backend cluster1 if slashdot use backend cluster2 if !slashdot backend cluster1 server servera 192.168.0.50:80 backend cluster2 server serverb 192.168.0.51:80
未经testing。
我遇到了这个post ,其中谈到使用这样一个设置:
acl invalid_referer hdr_sub(referer) -i -f /etc/haproxy/banned.haproxy.conf block if invalid_referer
它应该返回一个403到块引荐stream量。 你应该能够修改configuration来处理stream量不同(即传递给不同的支持)