У меня в конфиге haproxy есть что-то подобное
backend myservice
option httplog
stick-table type string size 10 expire 10m store gpc0
stick store-request req.hdr(MYHDR)
server server1 127.0.0.1:9494 check inter 1s rise 1 fall 1
Я просто использовал это в качестве примера. Поскольку таблица стикеров индексируется ключом; в данном случае это заголовок запроса MYHDR. Счетчик gpc0 может хранить некоторое значение. Я могу установить значение извне с помощью сокета UDS и socat.
set table name-of-the-table key <MYHDR> data.gpc0 <someval>
Однако я не могу понять, как установить значение gpc0 из конфигурации haproxy.
Я имею в виду следующее:
Для запроса используйте stick-table в качестве хеш-таблицы общего назначения и сохраните key = req.hdr (MYHDR), value = src (или что-то еще)
Позже я буду использовать значение ключа, чтобы принимать решения о маршрутизации несвязанных запросов.
Я не мог придумать, как использовать стол с палками таким образом. Что-то я пропустил? В любом случае, есть ли смысл в конфиге haproxy предусмотреть метод set-gpc0? Есть способы увеличивать и очищать, но не устанавливать конкретное значение.
Я понимаю, что c в gpc обозначает счетчик, и я не совсем использую его как счетчик, но думаю, что это инициализация счетчика определенным значением, а не начало с 0.