Как сделать базовую аутентификацию с HAProxy при выполнении других ACL?
Я использую HAProxy перед серверами Apache и хочу внедрить базовую аутентификацию для некоторых доменов.
В руководстве говорится, что это должно сработать:
userlist admins
user myusername insecure-password mypassword
frontend restricted_cluster
acl auth_tintoretto http_auth(admins)
http-request auth realm ShareaholicRestricted
Тем не менее, у меня есть некоторые другие ACL и под одним фронтом есть несколько доменов:
frontend http-in
# Define hosts
acl stag_static hdr(host) -i staging.static.domain.com
acl prod_static hdr(host) -i prod2.static.domain.com
## figure out which one to use
use_backend apache-node1 if stag_static
use_backend nginx-cluster if prod_static
Как мне объединить эти команды, чтобы ограничить доступ только к stag_static?
2 ответа
Я не проверял, но попробуйте поставить http-request auth realm blah
строка в вашей конфигурации бэкэнда. Он должен работать.
Предикат http-request auth
в ACL, соответствующем сайту, который вы хотите авторизовать:
frontend http-in
acl stag_static hdr(host) -i staging.static.example.com
acl prod_static hdr(host) -i prod2.static.examplecom
http-request auth realm "The No Homers Club" if stag_static
use_backend apache-node1 if stag_static
use_backend nginx-cluster if prod_static