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