Назад | Перейти на главную страницу

Как добавить заголовки ответа с HAproxy 1.6 на основе URI запроса?

Я использую HAproxy 1.6 в качестве балансировщика нагрузки перед серверами tomcat.

Мне нужно добавить заголовки ответа на основе URI запроса.

Например, я хотел бы добавить заголовок ответа Cache-Control public,max-age="600" когда URI запроса /api но не тогда, когда URI запроса - это что-то другое.

Как я могу использовать путь запроса в ACL для установки заголовка ответа?

Попробуй это:

http-response set-header Cache-Control no-cache,\ max-age=600 if { capture.req.uri -m beg /api/ }

capture.req.uri сохраняется до тех пор, пока ответ не будет обработан, в отличие от path, чего нет.

Несколько примечаний:

В этом примере используется анонимный ACL. Вы также можете сделать это с помощью именованного ACL, но это займет 2 строки.

Нет причин, по которым я знаю, почему вы должны указывать значение максимального возраста.

Вы, наверное, не хотите add-headerты хочешь set-header, что гарантирует, что если он уже есть, он будет удален.

acl path_acl %[var(txn.path)] -m ^/api/(.*)$ вероятно правильно написано как acl path_acl var(txn.path) -m ^/api/(.*)$. HAProxy немного привередлив в том, когда он ожидает %[ ] а когда нет. Я уверен, что есть закономерность, но я не совсем понимаю, что это такое.