我在rails服务器之间有一个haproxy(1.6.3)平衡。我用cookie实现了粘性:
backend railswebapp-backend
balance roundrobin
mode http
redirect scheme code 301 https if !{ ssl_fc }
cookie SERVER_NAME insert
{% for backend_fqdn in backend_fqdns %}
server {{ backend_fqdn }} {{ backend_fqdn }}:443 ssl cookie {{ backend_fqdn }} check
{% endfor %}
(我正在复制/粘贴盐模板:最后一行仅表示将每台服务器的FQDN用作服务器名称和cookie值。)
这似乎有效。但是我已经阅读过不赞成使用cookie(以及我未使用的appsession),而推荐使用stick-table。
除了使用当前功能集的将来兼容性之外,是否还有性能上的理由优先考虑更改此功能集?还是我错过了一些测试?还是从开发的角度来看,haproxy朝这个方向发展更有意义,所以我应该遵循一个不再支持cookie的haproxy版本,否则一切都很好?
答案 0 :(得分:0)
您似乎为proxies和servers使用了cookie
关键字。在这些情况下,我看不到任何表明cookie
关键字将被弃用的信息。我也找不到关于它的在线讨论,因此,如果您可以链接讨论它的文章,那将非常有帮助。我只能找到不推荐使用该关键字的地方,这是因为fetching samples的含糊性降低了;不推荐使用cookie
,而推荐使用req.cook
和res.cook
。
对于appsession
来说,删除它的原因是用例太窄,可粘贴式表可以做同样的事情,但是方式更灵活,更健壮。来自docs:
As of version 1.6, appsessions was removed. It is more flexible and more
convenient to use stick-tables instead, and stick-tables support multi-master
replication and data conservation across reloads, which appsessions did not.