Я использую haproxy 1.5.18, и он выполняет завершение SSL и перенаправляет на различные серверы с помощью ACL.
Я хотел бы перенаправить пользователя (302) на другую страницу, если бэкэнд возвращает 404. Как лучше всего это сделать?
Я нашел нить знакомства 2009 и решает проблему с помощью rsprep. Это все еще способ сделать это?
Наконец-то у меня есть кое-что, что работает.
Любой лучший вариант приветствуется.
frontend fe
bind 0.0.0.0:81
use_backend be
backend be
mode http
acl not_found status 404
rsprep ^HTTP/1.1\ 404\ (.*)$ HTTP/1.1\ 302\ Found\nLocation:\ / if not_found
server server1 127.0.0.1:80 check
Вы можете использовать что-то вроде этого:
listen fe
bind 0.0.0.0:82
acl not_found status 404
http-response redirect code 302 location https://google.fr if not_found
server server1 127.0.0.1:80 check
frontend fe
acl not_found status 404
http-response set-header Location https://google.com/ if not_found
http-response set-status 302 if not_found
Кажется http-response redirect
синтаксис работал в haproxy 1.8, но в сборках ubuntu, которые мы используем, он странным образом не работает в 1.9 и совсем не работает в 2.0.