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

Можно ли удалить часть пути в HAProxy при редиректе?

Я использую HAProxy для установки cookie при посещении mydomain.com/dev и перенаправляет на mydomain.com .

Цель этого - предложить способ посетить разрабатываемую версию сайта вместо производственной, сохранив при этом все остальное.

Соответствующая строка конфигурации выглядит примерно так:

frontend webfarm 1.2.3.4:80
    acl acl_dev path_end /dev

    redirect location / code 302 set-cookie SERVERID=live03 if acl_dev

    default_backend default_farm

Теперь вместо перенаправления в корневой домен я просто хотел бы удалить путь / dev. Итак, если бы я пошел mydomain.com/foo/dev он установит cookie и перенаправит на mydomain.com/foo

Возможно ли это с HAProxy, или мне нужно будет использовать mod_rewrite на внутреннем сервере apache?

Заметка: Мне не нужно правило mod_rewrite, просто ищу, возможно ли это в HAproxy.

Вы можете сделать это с помощью команд reqrep или reqirep:

reqrep ^([^\ ]*)\ (.*)/dev \1\ /\2 if acl_dev

Вы можете переписывать URL-адреса и манипулировать заголовками HTTP (добавлять, изменять и удалять заголовки).

Однако в документации haproxy указано, что это не рекомендуется, и ваша установка должна работать (без перенастройки) с и без haproxy, работающего между вашими клиентами и вашими реальными серверами. Следуя этой рекомендации, лучше использовать apache mod_rewrite.