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

Используйте haproxy для перенаправления при 404 с бэкэнда

Я использую 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.